【问题标题】:How to delete download cache?如何删除下载缓存?
【发布时间】:2014-02-24 13:29:59
【问题描述】:

当我第二次启动应用程序尝试进​​行新下载时,会下载之前下载的内容数据!这是代码:

$output = RP_MAIN . 'docbook/data/myfile.pdf';          
header('Content-Type: application/x-download');
header('Content-Disposition: attachment; filename="'.'manuel.pdf'.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ob_clean();
readfile($output);

那么如何在下载前清除下载缓存呢?

【问题讨论】:

    标签: php html http-headers download


    【解决方案1】:

    ctrl+F5 将强制刷新浏览器并清除缓存。 但是,要使页面加载而不每次都使用缓存,您可以试试这个 -

    $output = RP_MAIN . 'docbook/data/myfile.pdf?'.rand();

    这会在每次页面加载时在文件名的末尾生成一个随机数,所以浏览器每次都会认为是一个新文件而不使用缓存中存储的信息。

    【讨论】:

    • 这种添加参数的技术不起作用!
    【解决方案2】:

    在文件 URL 上添加一个随机参数,以便您的浏览器认为它是一个新文件:

    $output = RP_MAIN . 'docbook/data/myfile.pdf?version=1.5';
    

    【讨论】:

    • 每次下载时是否应该更改version参数的值?
    • try header('Content-Disposition: attachment; filename="'.'manuel.pdf?version=1.5'.'"');
    【解决方案3】:

    我将 ?nocache 添加到 CSV 文件 URL 的末尾。它不一定是这个词,但它适用于在 Excel 中打开文件。似乎没有必要在那里有一个随机数,至少对于 Excel。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 2022-08-10
      • 1970-01-01
      相关资源
      最近更新 更多