【发布时间】:2014-05-05 20:52:51
【问题描述】:
我有一个包含许多大 pdf 文件的存储库。我允许用户使用 servlet 下载 pdf 文件。我想要功能,只要我点击“查看文件”,用户就应该能够看到已经下载的内容(逐页)。
String fileType = "application/pdf";
response.setContentType(fileType);
// Make sure to show the download dialog
response.setHeader("Content-disposition","inline; filename=JavaIn21Days.pdf");
URL url = new URL("http://portal.aauj.edu/e_books/teach_your_self_java_in_21_days.pdf");
BufferedInputStream bufferedInputStream = new BufferedInputStream(url.openStream());
byte[] buffer = new byte[4096];
int length;
while ((length = bufferedInputStream.read(buffer)) > 0){
out.write(buffer, 0, length);
out.flush();
}
in.close();
out.close();
如您所见,我尝试将“Content-disposition”设置为“内联”,并且我将 out.flush() 放在循环中而不是外侧循环中。
【问题讨论】:
-
这是一个问答网站。如果您希望有人为您工作或为您创建一些代码,请尝试像 vworker 这样的程序员招聘网站。
-
我不想让任何人工作。我尝试了很多类似 response.setHeader("Content-disposition","inline; filename="abc.pdf") 但我无法实现所以我只是在寻求帮助,如果有人以前做过。
-
如果你尝试了很多东西,请在这里分享。它显示了努力,也减少了获得您已经尝试过的解决方案的机会。使用您尝试过的代码以及为什么它不起作用(发布错误日志或“它什么也没做”或解释)编辑您的问题。如果你这样留下你的问题,它可能会被关闭。
-
令人惊讶的是,我在 Stack Overflow 上没有看到类似的问题。你是否正确地解决了这个问题?字节服务 PDF 已经存在了一段时间。 Google: java servlet "byte serve" pdf.
-
我正在寻找像 mozilla.github.io/pdf.js/web/viewer.html 这样的功能。但我正在寻找更快的过程,就像 pdf.js 一样,最终用户也必须等待一段时间才能加载整个 pdf。