有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用JasperReports API将生成的pdf保存到服务器

我需要将生成的PDF文件保存到我的服务器中。我使用的是JasperReports API

PDF生成的代码示例:

//Result set(rs)
//Report path (rptPath)
//Hash map (hmp)
//ServletOutputStream (sos)
//HttpServletResponse (resp)

JRResultSetDataSource jrrs = new JRResultSetDataSource(rs);
bytes = JasperRunManager.runReportToPdf(rptPath, hmp, jrrs);
sos = resp.getOutputStream();
resp.setContentType("application/pdf");

resp.setHeader("Content-Disposition", "attachment;filename="MyFile.pdf");

sos.write(bytes);

sos.flush();
sos.close();

它直接生成文件并请求下载。我要将生成的文件存储到服务器中的位置


共 (1) 个答案

  1. # 1 楼答案

    您需要将字节写入服务器上的本地文件,而不是将其写回HttpResponse。 您的代码可以如下所示:

    FileOutputStream fileOuputStream = new FileOutputStream("C:\\report.pdf");
    fileOuputStream.write(bytes);
    fileOuputStream.close();