Java 如何将jasper报表生成的PDF文件保存在一个项目文件夹中
我有一个jasper报告,用户已经可以下载了。 但现在需要将此PDF的副本保存到服务器上的特定文件夹中,我有以下代码,但它会生成一个错误Java 如何将jasper报表生成的PDF文件保存在一个项目文件夹中,java,jasper-reports,Java,Jasper Reports,我有一个jasper报告,用户已经可以下载了。 但现在需要将此PDF的副本保存到服务器上的特定文件夹中,我有以下代码,但它会生成一个错误 JasperDesign design = JRXmlLoader.load(jrxPath); JasperReport report = JasperCompileManager.compileReport(design); JasperPrint pr
JasperDesign design = JRXmlLoader.load(jrxPath);
JasperReport report = JasperCompileManager.compileReport(design);
JasperPrint print = JasperFillManager.fillReport(report, getParametros());
//String pojectPath = "http://localhost:9080/ProjectName/";
String exportPath = projectPath + "reports/saida/" + "reportName.pdf";
JasperExportManager.exportReportToPdfFile(print, exportPath);
net.sf.jasperreports.engine.JRRuntimeException:
java.io.FileNotFoundException:
http:\localhost:9080\RelatoriosDPOC\reports\saida\reportName.pdf(文件名、目录名或卷标的语法不正确。) 我已经试着改变道路了。但我也犯了同样的错误
String exportPath = projectPath + "reports/saida/";
及
我的项目文件夹:
尝试创建目录并获取此目录的绝对路径:
String realPath = getServletContext().getRealPath("/");
File file = new File(realPath+"/reports/saida/output/");
file.mkdirs();
JasperExportManager.exportReportToPdfFile(print, file.getAbsolutePath +"reportName.pdf");
尝试创建目录并获取此目录的绝对路径:
String realPath = getServletContext().getRealPath("/");
File file = new File(realPath+"/reports/saida/output/");
file.mkdirs();
JasperExportManager.exportReportToPdfFile(print, file.getAbsolutePath +"reportName.pdf");
您尝试执行的操作无效,因为无法访问此文件夹。实现所需的一种方法是将pdf bytearray或stream对象写入响应中。类似这样的东西。谢谢你的awnser,但我已经可以将pdf导出到brownser,现在我需要在服务器上保存一份副本。是否要使此文件夹可访问?请尝试对文件路径i..e exportPath变量进行syso。。可能是路径不可访问。否则似乎没有问题。您尝试执行的操作无效,因为无法访问此文件夹。实现所需的一种方法是将pdf bytearray或stream对象写入响应中。类似这样的东西。谢谢你的awnser,但我已经可以将pdf导出到brownser,现在我需要在服务器上保存一份副本。是否要使此文件夹可访问?请尝试对文件路径i..e exportPath变量进行syso。。可能是路径不可访问。其他方面似乎没有问题。是否有办法将输出文件保存在服务器文件系统中,而不是保存在项目路径中?@MaYurMahAjan是的,如果您的服务器是Windows,则可以使用类似file file=new file(“C:/temp/output”)的内容。如果您的服务器是Linux,则可以使用类似file=new file(“/opt/output”)的内容是否有办法将输出文件保存在服务器文件系统中,而不是保存在项目路径中?@MaYurMahAjan是的,如果您的服务器是Windows,则可以使用类似file file=new file(“C:/temp/output”)的内容。如果您的服务器是Linux,则可以使用类似file=new file(“/opt/output”)的内容