当服务器指定错误的内容类型时,如何在 Firefox 中查看 PDF?

当服务器指定错误的内容类型时,如何在 Firefox 中查看 PDF?

我使用的是带有 PDF 查看器插件的 Mozilla Firefox。该插件已在设置中正确关联到 Adob​​e Reader 文件,以便在浏览器中查看它们。

我希望能够在 Firefox 中查看 PDF 文件,而不是下载它们。当 Web 服务器指示文件具有 时,这已经可以正常工作Content-Typeapplication/pdf但是,某些 Web 服务器Content-Type为 PDF 提供了其他 s,例如application/octet-stream。(请参阅此示例为 PDF 文件与非 PDF 文件一起提供Content-Type

我看过Firefox 的 MimeTypes.rdf 文件,并且它似乎仅支持基于非基于 Internet 的文件的文件扩展名的映射应用程序。(它似乎仅用于Content-Type映射基于 Internet 的文件。)

如何让 Firefox 视图全部application/pdf Content-Type浏览器中的 PDF 文档,而不仅仅是带有?的文档。

答案1

Firefox 没有内容检查代码(例如 linuxfile命令)来检测实际的内容类型并依赖于Content-Type标题。

解决方法:mozplugger扩展

man 7 mozplugger

  extensions
          This is a comma separated list of extensions that should be associated with this particular mime type. The  exten‐
          sions are only used when a web server does not report what type of file it is, or when loading files directly from
          disk.

解决方法:人机交互

保存文件并在文件资源管理器中打开它;-)

解决方法:配置错误

另一种解决方法是进行破解mimeTypes.rdf并分配application/octet-stream与相同的值application/pdf

我不建议采用这种解决方法。

答案2

您可以使用强制内容类型带有错误响应标头的 pdf 文件的扩展名Content-Type

例如,如果 Web 服务器提供,Content-Type: application/octet-stream您可以添加规则将其转换为Content-Type: application/pdf基于 pdf 文件 url,如下所示:

在此处输入图片描述

相关内容