让浏览器缓存PHP生成的PDF文件

时间:2020-03-24 16:24:09

标签: php pdf caching

我正在使用SetaPDF使用PHP标记PDF文件。 因为标记是一个漫长的服务器端过程,所以我试图让浏览器(所有浏览器)在用户在浏览器中查看其后缓存已标记的PDF,因此下次他访问我的标记PHP的网址时文件-浏览器将从其缓存中检索PDF。

我已经尝试了几种标头设置来实现此目的,但是似乎浏览器从不缓存PDF并始终从服务器再次检索它。

这些是我尝试过的标题:

header("Cache-Control: max-age=2592000");
header('Pragma: public');

我确实看到浏览器响应标头是通过chrome的网络检查器工具在PHP中设置的,如下所示:

Request Method: GET
Status Code: 200 OK
Response Headers: 
 Cache-Control: max-age=2592000
 Connection: Keep-Alive
 Content-Disposition: inline; filename="myfilename.pdf"
 Content-Length: 5383171
 Content-Type: application/pdf
 Date: Tue, 24 Mar 2020 16:00:57 GMT
 Expires: Thu, 19 Nov 1981 08:52:00 GMT
 Keep-Alive: timeout=5, max=100
 Pragma: public
 Server: Apache/2.4.6 (CentOS)
 X-Powered-By: PHP/7.0.32

但是PDF似乎并没有被缓存,而是从服务器中检索出来,它始终是200响应码而不是304。

我也尝试过:

header('Cache-Control: only-if-cached');

,我尝试完全不使用“ Cache-Control”或“ Pragma”。 似乎仍然没有缓存PDF。

我设置标题错误吗?有什么建议吗?

0 个答案:

没有答案