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

Niv*_*Niv 7 pdf acrobat caching header

我试图找到一种方法来阻止浏览器缓存使用流式方法加载的PDF.

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

Response.AddHeader("Pragma","no-cache,no-store"); Response.AddHeader("Cache-Control","no-cache,no-store,must-revalidate,max-age = 0"); Response.AddHeader("Expires"," - 1");

虽然,IE 7(使用acrobat reader 9.4.1)仅适用于以下标头并阻止PDF文档的缓存:

Response.AddHeader("Pragma","no-cache,no-store"); Response.AddHeader("Cache-Control","private,must-revalidate,max-age = 0"); Response.AddHeader("Expires"," - 1");

当我试图使用IE 7与Acrobat Reader 10时,无论我尝试什么,上面的标题都没有任何不同并缓存PDF.

当我试图放置Cache-Control:no-cache,no-store时,根本没有加载pdf.根据我的理解,IE使用缓存机制来加载PDF文档.

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

iGE*_*GEL 7

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

PHP(因为每个人都明白,即使没有人喜欢它):

 <a href="document.pdf?buster=<?= time() ?>">Download PDF</a>
Run Code Online (Sandbox Code Playgroud)


BZ1*_*BZ1 0

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