【问题标题】:Application/pdf data starts download instead of viewing it应用程序/pdf 数据开始下载而不是查看
【发布时间】:2013-06-23 07:41:24
【问题描述】:

我有网络应用程序。 当我点击链接时: http://..... 文档/视图?type=pdf 我希望浏览器显示一个 pdf 文件。它在 Firefox 和 IE 上运行正常,但 Chrome 开始下载而不是显示。

代码如下:

response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=test;");
OutputStream out = response.getOutputStream();
out.write(pdfByteData);
out.flush();

可能是什么问题?可能是因为我的本地 chrome 设置或其他原因?我不知道。

【问题讨论】:

  • 您是否尝试过为 PDF 文件名添加扩展名? response.setHeader("Content-Disposition", "inline; filename=test.pdf;");
  • 是的,没有任何变化,Chrome 会下载文件 :(

标签: java google-chrome pdf web


【解决方案1】:

尝试使用以下链接在chrome中安装pdf插件

https://support.google.com/chrome/answer/142056?hl=en

浏览器如何处理文件下载

通常当用户访问文件 URL(例如:下载链接)时,该文件将显示在 浏览器,如果浏览器支持的话。图像文件,如 jpg、png、gif 等几乎总是显示在浏览器中。归档文件,如 zip, tar、gzip 等将始终被下载。某些文件类型显示在 某些浏览器,但不是其他浏览器,具体取决于浏览器是否可以读取 文件与否。例如,Internet Explorer (IE) 通常会尝试 在浏览器中显示 Microsoft Word 文件(doc 和 docx),而大多数 其他浏览器会下载它。谷歌浏览器有自己的 PDF 转换器,它将尝试转换 PDF 文件并将其呈现在 浏览器。

要理解的关键是某些浏览器可能能够读取 基于您为此安装的插件的特定文件类型 浏览器,而其他人可能无法。如果浏览器可以读取 文件类型,它将在浏览器中显示。如果浏览器无法读取 文件类型它将强制下载到硬盘。通常这是 不是问题,因为用户可以在之后将文件保存到那里的计算机 它显示在浏览器中。

【讨论】:

  • 没关系。我在寻找解决方案时添加了该行。它并没有改变这种情况:(
  • @user2060247 更新了分辨率,可能需要在chrome中安装pdf插件。
  • 感谢您的回答,它真的帮助了我!问题是我几个月前禁用了内置的 Chrome pdf-reader。谢谢!
【解决方案2】:

只需使用 HTML 命令,这就是我对我的网站所做的:

<a href="Sources/Your%20PDF%20File.pdf">Click Here to view the PDF file</a>

适用于所有浏览器!。

【讨论】:

  • 问题是我需要给外部系统一个url,所以有人关注它并查看文档。 Mime 类型和内容取决于 id。 (例如可能是 jpg 或 pdf,我遇到了 pdf 的问题)
猜你喜欢
  • 2016-07-23
  • 2019-10-08
  • 2014-08-06
  • 2019-04-03
  • 2019-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
相关资源
最近更新 更多