读取pdf文件并从servlet发送pdf响应

时间:2014-05-22 16:54:01

标签: java servlets pdf web-applications

在我的应用程序中尝试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没有在浏览器中下载。

我已经评论了其他类似的帖子,但无法找到我做错了什么。 任何帮助表示赞赏

0 个答案:

没有答案