2012-05-03 67 views
0

我有我的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(); 

。我讀取和生成文件,但打開文件時它是空的。

感謝你..!

+0

你可以查看這篇文章:[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上的搜索很好用;) –

+0

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

+0

您可以發佈解決方案作爲答案,以幫助其他人 –

回答

0

httpservletresponse.setHeader(「Content-disposition」,「attachment; filename = \」「+ title +」.pdf \「」);應該做

+0

我做到了..我的意思是它的一個基本的東西。無論如何,現在我從指定的文件位置讀取PDF文件,並生成PDF文件,但是當我打開文件時,它不顯示任何內容,文件 – Stephen