一种强制 Firefox 在其 Pdf 查看器中打开文件的方法?

I_D*_*ode 5 firefox pdf pdf-reader firefox-extensions macos

我正在尝试查看我在网上找到的 Pdf 文件。

通常,当我尝试打开 Pdf 文件时,Firefox 会在其默认的 Pdf 查看器(我相信称为 pdfjs)中显示它。这是良好且正常的行为。

但是……
使用我在网上找到的这个特定的 Pdf,我单击指向其位置的链接,Firefox 会显示下载对话框。它将文件描述为“二进制文件”,即使该文件是我可以下载和本地查看的 Pdf。

我假设网络服务器“没有告诉”Firefox 这个 Pdf 文件实际上是一个 Pdf 文件。所以Firefox只能假设它是一个“二进制文件”。

          这让我想知道这个问题......

如果我再次遇到这种烦恼,我可以强制Firefox 在其默认 Pdf 查看器中打开文件(在线或其他方式)而不是下载文件?

尝试的解决方案:

  1. 我尝试了如何手动调用 firefox built-in pdf viewer (pdf.js) 中的答案,但无济于事。Firefox 只是尝试下载“二进制文件”。
  2. 我添加view-source:到 Pdf 位置的开头(即view-source:https://www.website.com/pdf.pdf),我只显示 Pdf 文件的原始 ASCII 文本。

PS:我使用的是 Firefox 48.0.2 ......
是的,它很旧......


按照要求:

响应和请求标头的屏幕截图

Mic*_*ank 5

网站可以通过多种方式强制浏览器下载文件而不是直接打开文件:

HTMLdownload属性

标签上的此属性anchor将尝试强制您的浏览器下载文件,而不是按照通常的方式处理文件。

通常,当您需要自动生成的文档名称并将其呈现为对用户有利的内容时,请使用此方法。

用法:<a href="http://www.website.com/path/to/YourDocument.pdf" download="YourDocument.pdf">...

我还没有找到解决这个问题的方法,但由于你的问题的真正原因如下,我还没有完全研究它......

HTTP 标头

Content-Disposition

网络服务器可以响应带有标头的文档请求,Content-Disposition以描述浏览器应如何接收文件。

Content-Disposition: Attachment会告诉浏览器应该下载该文件,而不是像平常那样处理它。

Content-Disposition: Inline会告诉浏览器它可以显示在网页内部,或者作为网页显示。

这是一个 Firefox 插件,它将获取Attachment标头并用标头替换它们Inline

https://addons.mozilla.org/en-US/firefox/addon/bypass-forced-download/

从技术上讲,它拦截Content-Disposition: attachmentheaders 并将它们即时重写为Content-Disposition: inline. 它还允许您指定应该和不应该使用此重写的网站。

与大多数插件一样,您的里程可能会有所不同。

Content-Type

网络服务器可以响应带有标头的文档请求Content-Type,以描述返回给浏览器的文档类型。

Content-Type: application/octet-stream被定义为“任意二进制数据”,基本上只能作为文件下载,否则浏览器将不知道如何处理它。

这是当您的浏览器请求您尝试查看的 PDF 文件时您会看到的内容。

Content-Type: application/pdf如果您想在浏览器中查看此文件,或者至少让 Firefox 了解该文件是什么以及如何正确处理它,您可能需要此文件。

这是一个 Firefox 插件,可以设置为侦听并Content-Type根据内容重写标头。

注意: 修改浏览器处理 MIME 类型的方式可能很危险。

https://addons.mozilla.org/en-US/firefox/addon/content-type-fixer/

同样,这个插件可能适用于所有情况,也可能不适用于所有情况。