![当服务器指定错误的内容类型时,如何在 Firefox 中查看 PDF?](https://linux22.com/image/1336228/%E5%BD%93%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%8C%87%E5%AE%9A%E9%94%99%E8%AF%AF%E7%9A%84%E5%86%85%E5%AE%B9%E7%B1%BB%E5%9E%8B%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E5%9C%A8%20Firefox%20%E4%B8%AD%E6%9F%A5%E7%9C%8B%20PDF%EF%BC%9F.png)
我使用的是带有 PDF 查看器插件的 Mozilla Firefox。该插件已在设置中正确关联到 Adobe Reader 文件,以便在浏览器中查看它们。
我希望能够在 Firefox 中查看 PDF 文件,而不是下载它们。当 Web 服务器指示文件具有 时,这已经可以正常工作Content-Type
。application/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,如下所示: