使用Java Servlet / JSP从HTML页面中的服务器嵌入PDF文档

时间:2017-07-02 19:34:52

标签: java html jsp pdf servlets

我目前能够将服务器目录中的文件提供给HTML前端。但是,我目前只能下载这些文件,或者在页面上完全打开。我想要做的是将它们嵌入我的网页。

如果文件存储在网络目录中但是使用了embed标记,我可以很容易地做到这一点。

目前我正在做一些事情:

Servlet文件:

@MultipartConfig
@WebServlet
public class FileServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        File file = new File("filePath");
        String mimeType = getServletContext().getMimeType(file.getName());
        response.setHeader("Content-Type", mimeType);
        response.setHeader("Content-Length", String.valueOf(file.length()));
        response.setHeader("Content-Disposition", "embed; filename=\"fileName.pdf\""); 
        Files.copy(file.toPath(), response.getOutputStream());
     }
}

JSP:

<form action="getFile" method="post" id="fileForm">
  <input type="hidden" name="fileName" value="<%out.print(cvKey);%>/<%out.print(name);%>.pdf"/>
</form>

在页面加载时自动提交表单。

我一直在尝试将嵌入式标记的源代码设置为Servlet文件的输出,但我尝试过的任何内容都不是我想要的。

任何帮助都会很棒!!

更新:

我还尝试了一些其他的东西;包括使用iframe:

<iframe name="frame" width="500" height="300"></iframe>

然后将表单的目标设置为该帧的名称。这仍然无法正常工作,我只是得到一个空框架并下载文件:/。

编辑:

尝试使用带有直接路径的路径的embed标记失败:

我的代码:

<embed id="embeddedPDF" src="/home/user/resources/candidate.pdf" width="1000" height="1000" type='application/pdf'></embed>

错误:

The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

0 个答案:

没有答案