Servlets 使用servlet下载pdf格式的报告

Servlets 使用servlet下载pdf格式的报告,servlets,jasper-reports,pdf-generation,Servlets,Jasper Reports,Pdf Generation,我在POJO类中有pdf文件位置和pdf文件。我想使用servlet下载电子pdf。请告诉我一些完成的方法。 文件位置=/tmp/SWBC_444Thu May 03 20:01:07 IST 20124366242221752147545.pdf 使用此文件位置,我想提示用户下载pdf格式的文件 这是我的密码 File file = new File(filePath); OutputStream responseOutputStream = response.getOutputStrea

我在POJO类中有pdf文件位置和pdf文件。我想使用servlet下载电子pdf。请告诉我一些完成的方法。 文件位置=/tmp/SWBC_444Thu May 03 20:01:07 IST 20124366242221752147545.pdf 使用此文件位置,我想提示用户下载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(); 
。我读取并生成文件,但打开文件时,它是空的


谢谢你

httpservletresponse.setHeader(“内容处置”、“附件;文件名=\”“+title+”.pdf\”);应该做的

我做了..我的意思是这是pdf的基本功能。无论如何,现在我从指定的文件位置读取pdf文件并生成pdf文件,但当我打开文件时,它不会显示任何内容,文件您可以查看以下帖子:&。SO上的搜索非常有效;)文件文件=新文件(文件路径);ServletOutputStream ServletOutputStream=response.getOutputStream();BufferedInputStream bufferIput=null;FileInputStream FileInputStream=新的FileInputStream(文件);bufferIput=新的BufferedInputStream(fileInputStream);byte[]bBuffer=新字节[fileInputStream.available()];int n字节=-1;而((nBytes=bufferIput.read(bBuffer,0,bBuffer.length))!=-1{servletOutputStream.write(bBuffer,0,nBytes);}问题已解决。您可以使用此代码阅读pdf文件并下载。您可以将解决方案作为答案发布,以帮助他人