Caching 如何在使用Acrobar Reader 10.0(HTTP1.0/HTTP1.1)的PDF流时防止缓存

Caching 如何在使用Acrobar Reader 10.0(HTTP1.0/HTTP1.1)的PDF流时防止缓存,caching,pdf,header,acrobat,Caching,Pdf,Header,Acrobat,我试图找到一种防止浏览器缓存正在使用流方法加载的PDF的方法 FireFox和Chorme可以很好地处理以下标题,并且不会缓存任何pdf文件: AddHeader(“Pragma”,“无缓存,无存储”); AddHeader(“缓存控制”,“无缓存,无存储,必须重新验证,最大年龄=0”); AddHeader(“Expires”、“-1”) 尽管如此,IE 7(使用acrobat reader 9.4.1)仅适用于以下标题,并防止缓存PDF文档: AddHeader(“Pragma”,“无缓存,

我试图找到一种防止浏览器缓存正在使用流方法加载的PDF的方法

FireFox和Chorme可以很好地处理以下标题,并且不会缓存任何pdf文件:

AddHeader(“Pragma”,“无缓存,无存储”); AddHeader(“缓存控制”,“无缓存,无存储,必须重新验证,最大年龄=0”); AddHeader(“Expires”、“-1”)

尽管如此,IE 7(使用acrobat reader 9.4.1)仅适用于以下标题,并防止缓存PDF文档:

AddHeader(“Pragma”,“无缓存,无存储”); AddHeader(“缓存控制”,“私有,必须重新验证,最大年龄=0”); AddHeader(“Expires”、“-1”)

当我尝试将IE7与AcrobatReader10一起使用时,上面的标题没有任何不同,并且缓存了PDF,无论我尝试了什么

当我试图设置缓存控制时:没有缓存,没有存储,pdf根本没有加载。 据我了解,IE使用缓存机制加载PDF文档


是否有人熟悉有助于防止缓存PDF文档的全局或特定方法(例如使用其他标题)?

控制管道中的缓存设置并非易事。另一种方法是在PDF文件名中对实时时间和日期进行编码。

您可以将时间日期编码到PDF文件名中,以便每次发出请求时文件名都是唯一的

Response.AddHeader“内容处置”、“附件;文件名=somename”+CurrentDate()+Currenttime().pdf“

CurrentDate和CurrentTime是虚函数。您需要编写该代码。

使用无缓存标头内联显示PDF(和其他文档类型)的问题已作为错误提交给Microsoft:。IE在内联读取PDF时使用自己的缓存机制

不幸的是,M$的人说这“按设计工作”,用户不应该使用无缓存头。。。算了吧


你可以试试VSU使用Java PDF阅读器的想法。。。我也可以这样做。

在URL中添加一个随机数,可以在路径中,也可以在查询字符串中。这样,它每次都会下载文件。如果文件已更改,也可以仅更改编号,例如使用文件的mtime

PHP(因为每个人都理解这一点,即使没有人喜欢它):



通过发送此标题,浏览器会要求我下载文件。当我尝试将“内联”而不是“附件”放入缓存时,它仍然保存在缓存中。有没有关于如何在不缓存pdf文档的情况下对其进行流式处理的建议?我认为您不希望缓存pdf文档的原因是为了确保每次都生成新的pdf。现在,我意识到您想要阻止它存储在客户机中。好的,您可以创建一个Java小程序来下载PDF文件并显示其内容,当用户使用完它时,会将其删除。服务器可以对其进行加密,小程序可以进行解密以获得额外的安全性。下面是一个Java PDF查看器的示例,它可以在网页中显示PDF嗨,感谢您的回复。我正在搜索一个不包含任何第三方或外部代码的sulotion。只是想知道为什么浏览器(或acrobat插件)会忽略指定的标题。提前感谢您的回答。对于此类问题,这无疑是一个优雅的解决方法。如果服务器上的pdf名称中有空格,则此方法将不起作用。
 <a href="document.pdf?buster=<?= time() ?>">Download PDF</a>