【问题标题】:PDF not showing on visitors browserPDF 未在访问者浏览器上显示
【发布时间】:2015-07-28 01:48:40
【问题描述】:

我有一个网页 (http://optiswissopen2015.ch/page/noticeboard),上面有一些 PDF。所有这些都以相同的方式链接。但在某些浏览器(肯定是 IE8)上,它们显示为文本,而不是打开 pdf 查看器。

<a href=" /files/Noticeboard/1436883318_sism2015.pdf"
          download runat="server" class="button color3">

我的第一个想法是,他们的标题可能有问题。但是将它们转换为 .ps 并返回并没有帮助。

我该怎么做才能让它们在所有浏览器中都能正常打开? 作为最后一个选择,我可以压缩它们:-(

【问题讨论】:

  • 确实很奇怪:如果我在 Mac 上的 Safari 中输入这个 url:optiswissopen2015.ch/files/Noticeboard/1436883318_sism2015.pdf,Safari 会认为它是一个 txt 文件。我认为这可能是服务器端的东西。如果我有时间,我会“手动”为服务器打开一个端口 80,发出一个 GET 请求并查看响应。 (另一个 URL 很好,您的 PDF 也很好 - Safari 不会查看 PDF 内部来决定做什么。如果被告知文件扩展名是 pdf,它会打开一个 pdf 查看器)。
  • 它们都在同一台服务器上。他们不应该有所有相同的 html 标头吗?
  • 取决于服务器做什么。我尝试使用 telnet 进行 GET,但服务器需要 POST - 你知道如何使用 telnet 进行 HTTP 客户端请求吗?如果是这样,请在工作且“损坏”的 pdf 上执行 POST 请求,看看你得到了什么。
  • 还没有。但我会找出并尝试。谢谢你的建议
  • 您是否尝试过删除空格。在您发布的链接上,我看到 href 标记有很多空白。

标签: pdf browser href


【解决方案1】:

是的,问题在于服务器上某些 PDF 文件返回的文件内容类型。要验证它,请使用 curl -i [url]wget -S [url]online tool

例如,1436883318_sism2015.pdf returns(不正确):

HTTP/1.1 200 OK
ETag: "[omitted]"
Last-Modified: Tue, 14 Jul 2015 14:15:18 GMT
Content-Type: text/plain
Content-Length: 1188394
Date: Mon, 27 Jul 2015 17:19:21 GMT
Accept-Ranges: bytes
Server: LiteSpeed
Connection: close

并且 anmedleguide.pdf 返回正确的标题:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2015 17:21:25 GMT
Server: Apache/2.4.10 (Unix)
Last-Modified: Fri, 17 Jul 2015 13:07:01 GMT
ETag: "[omitted]"
Accept-Ranges: bytes
Content-Length: 932698
Content-Type: application/pdf

【讨论】:

  • 这个标头是在哪里生成的?服务器是否解析文件并决定如何制作标题?
  • 我想它是 .htaccess 文件中的处理程序。您应该有一些像这样的字符串: AddType application/pdf .pdf 在您的 PDF 文件所在的文件夹中,因此它将提供具有“application/pdf”内容类型的 .pdf 文件。请参阅askapache.com/htaccess/pdf-cookies-headers-rewrites.htmlhtaccess-guide.com/adding-mime-types 了解更多详情
  • 不,服务器不解析 PDF 文件,而只是检查它们的文件名以确定应该在标题中返回的 content-Type 是什么。
【解决方案2】:

您为什么不尝试集成 pdf.js

我在 mozilla 中打开了您的页面,所有的 pdf 都显示得很好(Mozilla Firefox 默认在 pdf.js 中打开一个 pdf)。因此,您可以将其集成到您的网站中,并以相同的方式显示 pdf,而与浏览器无关。

在下面的链接中,我已经解释了如何轻松设置 pdf.js。(只需使用您的实际服务器而不是那里提到的本地主机。)

on this link.

只需几分钟即可完成设置,pdf 问题肯定会消失。

【讨论】:

  • 使用 pdf.js 将是一种解决方法。我会看看它。通过将文件存储在不同的服务器上,该问题暂时得到了解决。但我仍然对问题的根源感兴趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 2012-04-11
  • 2020-11-10
  • 1970-01-01
相关资源
最近更新 更多