在我的应用程序中尝试pdf下载功能
我正在servlet中读取pdf文件,并尝试通过servlet将其提供给客户端,下面是代码
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("Inside HTTP Post" + request.getParameterNames());
String pdfFileName = "C:\\test.pdf";
ServletOutputStream outStream = null;
BufferedInputStream inBuffer = null;
try {
outStream = response.getOutputStream();
File pdf = new File(pdfFileName);
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment; filename="
+ "test.pdf");
response.setContentLength((int) pdf.length());
FileInputStream input = new FileInputStream(pdf);
inBuffer = new BufferedInputStream(input);
int readBytes = 0, counter = 0;
while ((readBytes = inBuffer.read()) != -1) {
outStream.write(readBytes);
System.out.println("The readBytes " + readBytes + " "+ counter++);
}
System.out.println("After While");
} catch (Throwable e) {
System.out.println("Inside catch Block");
e.printStackTrace();
} finally {
System.out.println("Inside Filnally...");
outStream.close();
inBuffer.close();
}
System.out.println("End of method...");
}
当调试控件进入while循环并且在某次迭代后调用outStream.write(readBytes);
时,它会停止
之后的SOP没有打印,也没有来控制或最终阻止。 并且pdf没有在浏览器中下载。
我已经评论了其他类似的帖子,但无法找到我做错了什么。 任何帮助表示赞赏