不仅在服务器中在本地系统中下载文件或pdf

时间:2017-02-09 04:47:34

标签: javascript java jsp

我使用IText api编写了下载PDF的代码...我在我的项目中实现了它...我生成了war文件并部署在tomcat服务器中...当我试图下载pdf它正在下载在服务器电脑....但它不是在本地电脑上下载当我在本地网络服务器的电脑......有任何请帮助如何清除这个......!

我的代码就像......我正在创建文件夹,然后我将其保存在其中

boolean folder= new File("C:\\Reports").mkdir();
OutputStream file = new FileOutputStream(new File("C:\\Reports\\somename.pdf"));                              Document document = new Document(PageSize.A4.rotate());
PdfWriter.getInstance(document, file);
 document.open();
 document.close();
file.close();

2 个答案:

答案 0 :(得分:1)

如果我理解你的意图,请纠正我。您希望客户端PC访问服务器,而客户端PC将所述PDF下载到特定目录?

从我的理解,它不能用浏览器JS完成(我想象的是安全隐患)。您可以提示下载文件,但保存文件的位置取决于用户。

- 编辑:

来自this link

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    resp.setContentType("application/octet-stream");
    resp.setHeader("Content-Disposition", "filename=\"pdf.pdf\"");
    File srcFile = new File("C:/path_to_pdf/pdf.pdf");
    FileUtils.copyFile(srcFile, resp.getOutputStream());
}

您将需要FileUtils模块。

答案 1 :(得分:0)

如果您希望将文件传输到客户端,那么您似乎需要获取响应对象的输出流并在该输出流上发送pdf。

目前,您的逻辑只是创建一个在本地计算机上执行的pdf。

这样的一些代码需要存在:

ServletOutputStream os= res.getOutputStream();
PdfWriter writer = PdfWriter.getInstance(d, os);