我有我的POJO類中的pdf文件位置和pdf文件。我想使用servlet下載PDF文件。請告訴我一些方法來完成它。 File Location =/tmp/SWBC_444Thu May 03 20:01:07 IST 20124366242221752147545.pdf 使用此文件位置我想提示用戶將文件下載爲pdf。使用servlet下載報告爲pdf
這是我的代碼。
File file = new File(filePath);
OutputStream responseOutputStream = response.getOutputStream();
response.setContentLength((int)filePath.length());
FileInputStream fileInputStream = new FileInputStream(file);
int size = fileInputStream.available();
byte[] content = new byte[size];
int bytesRead;
while ((bytesRead = fileInputStream.read(content)) != -1)
{
responseOutputStream.write(content, 0, bytesRead);
}
responseOutputStream.flush();
fileInputStream.close();
responseOutputStream.close();
。我讀取和生成文件,但打開文件時它是空的。
感謝你..!
你可以查看這篇文章:[JasperReports:從servlet調用報告](http://stackoverflow.com/questions/2399507/jasperreports-calling-report-from-servlet)&[報告下載不提示用戶保存(http://stackoverflow.com/questions/6085049/report-download-not-prompting-user-to-save)。 SO上的搜索很好用;) –
File file = new File(filePath); ServletOutputStream servletOutputStream = response.getOutputStream(); ; BufferedInputStream bufferIput = null; FileInputStream fileInputStream = new FileInputStream(file); bufferIput = new BufferedInputStream(fileInputStream); byte [] bBuffer = new byte [fileInputStream.available()]; int nBytes = -1; ((nBytes = bufferIput.read(bBuffer,0,bBuffer.length)) != -1) { servletOutputStream.write(bBuffer,0,nBytes); }問題解決了。您可以使用此代碼來閱讀PDF文件並下載 – Stephen
您可以發佈解決方案作爲答案,以幫助其他人 –