php 5.2没有缓存头

时间:2013-05-28 09:11:59

标签: php internet-explorer caching

我不想将pdf文件保存在临时文件中,因为文件内容在更新临时文件时没有更新,所以我尝试使用“无缓存”如下(我在使用此功能之前清除了文件)

<?php
// Expires in the past
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
// Always modified
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
?>

但是,pdf文件是stil保存在临时文件中,pdf的内容没有更新。 我使用的是PHP 5.2并使用IE浏览器。此代码或任何其他方法的任何问题,例如,每当我访问网页时清除缓存。

我把它放在下载文件页面的顶部

<?php
// Expires in the past
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
// Always modified
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
?>
<?php  // $Id: view.php,v 1.61 2007/01/27 19:14:23 skodak Exp $

require_once("../../config.php");
require_once("lib.php");

$id = optional_param('id', 0, PARAM_INT);    // Course Module ID
$r  = optional_param('r', 0, PARAM_INT);  // Resource
.................................................
...............................................
.............................
?>

1 个答案:

答案 0 :(得分:1)

您是否检查过PHP正在运行?

尝试将echo "foo"; exit()放在此代码的顶部,看看是否仍然可以下载PDF文件 - 如果可以,那么您的代码没有运行,并且您的缓存限制无法正常工作。

此外,如果您正在使用代理服务器,那么可能在您不知情的情况下缓存该文件,请尝试重命名该文件并从旧位置下载 - 如果它仍然有效,那么您的服务器可能不是问题。