【发布时间】:2019-07-18 21:16:41
【问题描述】:
我正在使用 PHP 创建一个 CSV 文件并将其保存到服务器。
服务器缓存已启用,但这会使 CSV 文件也被缓存。
我正在寻找一种方法来防止这种情况发生。没有插件...
我尝试了什么:向 htaccess 添加代码(这也阻止了浏览器缓存文件,请不要关注与 htaccess 和浏览器缓存相关的答案,谢谢!)。 而且我还尝试添加一些 header() 代码..但我不确定在哪里。
我在创建文件时添加了这个:
header('Content-Type: text/csv');
header('Content-Disposition: attachment filename="sample.csv"');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
但是当我打开文件时它不起作用 - 它被缓存了。但我想这是添加此代码的错误点。但还有哪里? 我还尝试在'init'中添加一个操作,并询问调用的文件是否是我不想被缓存的文件,但是当然,从服务器打开文件时不会调用functions.php。
有人有想法吗?
【问题讨论】:
-
每次改文件名都要改吗? (例如
sample-20190718.csv) -
我做不到,因为平台每天都在获取文件,他们不可能每天都获取不同名称的文件。