【问题标题】:PHP PDF-Generation - IE7/Acrobat8: "Website cannot be displayed"PHP PDF 生成 - IE7/Acrobat8:“网站无法显示”
【发布时间】:2010-09-30 05:58:18
【问题描述】:

我在 IE7 中显示 pdf 时遇到了一些问题(由 R&OS 的 ezpdf 生成)。

IE7 与 Acrobat Reader 8.1.2。说“页面无法显示”

其他浏览器(如 FF3/Acrobat 8​​.1.2. 或 IE6/Acrobat 7)对该文件没有问题。

服务器返回以下标头:

日期:格林威治标准时间 2009 年 1 月 8 日星期四 10:52:40
服务器:Apache/2.2.8 (Win32) mod_ssl/2.2.8 OpenSSL/0.9.8g PHP/5.2.5 DAV/2
X-Powered-By:PHP/5.2.5
过期:1981 年 11 月 19 日星期四 08:52:00 GMT
缓存控制:无存储、无缓存、必须重新验证、后检查=0、预检查=0
编译指示:无缓存
内容长度:4750
保活:超时=5,最大值=100
连接:保持活动
内容类型:application/pdf

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: php pdf internet-explorer-7 pdf-generation


    【解决方案1】:

    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: 无缓存

    ...所以 IE 不会将文件存储在 Temporary Internet Files 文件夹中。然而,用于在 IE 中直接从浏览器“打开”文件的机制通常需要从 Internet 临时文件中打开它。直接从浏览器打开文件一般是不可靠的,尤其是在 IE 中; “另存为”效果更好。

    考虑用另一种方法替换 cachebusting 标头,例如在 URL 中添加“?randomstring”参数。还可以考虑添加“Content-Disposition: attachment; filename=...”标头,这将阻止插件尝试在浏览器 UI 中显示文件,但无法在浏览器 UI 中显示该文件。

    【讨论】:

    • "Content-Disposition: attachment" 在这里也无济于事。您确实应该将标头设置为允许缓存。
    【解决方案2】:

    我想我已经解决了这个问题。

    问题不是在服务器端,而是在客户端。 生成的 PDF 正在弹出窗口中显示(javascript:window.open),IE7 阻塞了它。

    当我在弹出窗口中打开一个重定向到 PDF 的 html 文件时,它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 2012-02-12
      相关资源
      最近更新 更多