4

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

带有 Acrobat Reader 8.1.2 的 IE7。说“页面无法显示”

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

服务器返回以下标头:

日期:2009 年 1 月 8 日星期四 10:52:40 GMT
服务器: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
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/pdf

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

4

2 回答 2

3

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

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

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

于 2009-01-08T12:28:52.470 回答
0

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

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

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

于 2009-01-08T12:27:41.427 回答