2012-08-29 78 views
0

我需要將生成的PDF文件保存到我的服務器中。我正在使用JasperReports API如何使用JasperReports API將生成的pdf保存到服務器中

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(); 

它直接生成文件,並要求下載。我想將生成的文件存儲到服務器的位置。

+0

您的問題是什麼? – Vulcan

+0

我上面的代碼是生成一個pdf文件。我需要將此文件保存到server.It不應該要求下載該文件。 –

+0

因此,使用Java IO功能將文件寫入磁盤...我不太瞭解您的問題。 – home

回答

1

您需要將字節寫入服務器上的本地文件,而不是將其寫回HttpResponse。 您的代碼可能看起來像:

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

謝謝mate.But,你在這裏寫文件。但是,我需要將同一個文件存儲到服務器。無需要求下載,內部我需要保存該文件。 –

+0

此代碼是否在服務器本身上執行?如果是,那麼文件寫入將發生本地服務器本身的權利? – Saurabh

+0

是的你是對的,但是,有沒有其他方法可以將該文件直接保存到服務器中? –

相關問題