【发布时间】:2023-03-31 13:34:01
【问题描述】:
在 Java Web 应用程序中,我必须在客户端计算机中打开 PDF 文件,该文件也可以在共享中使用,而无需复制到客户端。它应该在客户端的 adobe reader 中打开。
【问题讨论】:
标签: java file pdf client adobe
在 Java Web 应用程序中,我必须在客户端计算机中打开 PDF 文件,该文件也可以在共享中使用,而无需复制到客户端。它应该在客户端的 adobe reader 中打开。
【问题讨论】:
标签: java file pdf client adobe
如果文件位于客户端,如果他双击该文件,它将在 Adobe 阅读器中打开 :-)
但服务器无法打开位于客户端的文件。如果 Web 应用程序需要打开,则文件需要存在于服务器可读位置。您可以编写一个 servlet 来打开 PDF 文件。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletOutputStream servletOutputStream = null;
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
// Public user guide
String fileName = "MyFile.pdf";
bufferedInputStream = new BufferedInputStream(new FileInputStream(fileName));
byte[] data = new byte[bufferedInputStream.available()];
bufferedInputStream.read(data);
response.setContentType("application/pdf");
servletOutputStream = response.getOutputStream();
bufferedOutputStream = new BufferedOutputStream(servletOutputStream);
bufferedOutputStream.write(data);
} catch (Exception e) {
LOG.error(e);
} finally {
if (bufferedInputStream != null) {
bufferedInputStream.close();
}
if (bufferedOutputStream != null) {
bufferedOutputStream.flush();
bufferedOutputStream.close();
}
if (servletOutputStream != null) {
servletOutputStream.flush();
servletOutputStream.close();
}
}
【讨论】: