【问题标题】:PDF cache(under temporary internet files\content.ie5) issue for IE6 and IE8IE6 和 IE8 的 PDF 缓存(在临时 Internet 文件\content.ie5 下)问题
【发布时间】:2012-02-27 17:30:25
【问题描述】:

我有一个请求映射到 URL 的 Spring MVC 控制器。在点击此 URL 时会弹出保存/打开 PDF。打开它时,PDF 将保存在临时 Internet 文件/content.ie5 下作为缓存。但是,出于安全原因,不应将此 PDF 保存为缓存。后来我找到了一个使用以下方法打开 PDF 内联的解决方案:

pResponse.setHeader("Content-Disposition",
                "inline;filename=csi.pdf");

对于 IE8,PDF 不会保存为缓存。但是对于 IE6,它会再次缓存。为了处理这个问题,我使用了这个:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.

现在,此解决方案适用于 IE6,不适用于 IE8。有人可以告诉我如何处理。

【问题讨论】:

    标签: java internet-explorer caching pdf spring-mvc


    【解决方案1】:

    如果您正在处理安全内容,我认为您不应该依赖缓存/不缓存,因为它是特定于浏览器/应用程序的。例如,您尝试过 Firefox 吗?如果用户喜欢一些不同的(和不寻常的)浏览器怎么办?

    您应该通过https 提供它,由于加密,这将禁用网络上所有可能的缓存,但我相信它可能在打开时仍会被 Acrobat 缓存。

    另一种选择是使其成为受密码保护的 pdf。

    【讨论】:

    • 并不是真的使用了 https。密码保护并不能满足所有要求。这必须是解决方案,因为它一次只适用于一个浏览器。
    • @Goutham,我的意思是你不能依赖缓存行为——它可能不会缓存在你的机器上,但可能会缓存在我的机器上,因为我使用不同的浏览器,并且可能会被缓存Windows 的最近文件,或 Acrobat Reader 的最近文件等。你不可能绕过所有这些,所以如果你希望你的文件是安全的,加密它而不是担心你无法控制的东西。跨度>
    • 唯一的安全原因是任何拥有管理员权限的人都可以访问所有用户的缓存。所以不应该保存缓存。
    • 另外,所有用户只使用 2 个浏览器。 IE6 和 IE8。
    猜你喜欢
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多