3

我有一个脚本,用于删除/更新显示的图像文件。

问题是,它们正在被删除和替换(当我签入特定目录时),但在该特定 url 上显示的图像仍然是旧图像。

即我在删除旧文件(1.jpg,它是灰色的)后,目录是这样的:

在此处输入图像描述

但是,网址仍然显示 1.jpg 作为旧的灰色 img,即 在此处输入图像描述

现在,您可能认为我正在查找错误的 url 并添加/编辑另一个文件,但为了确认,我在同一目录中添加了一个 foo.html 文件并将 1.jpg 替换为 foo.html 以确认我在正确的目录中,我是。

我的编辑替换文件的脚本是这样的:

if(!empty($_FILES["pic".$ite]["name"])){
        if($id){
            unlink($path."$ite.jpg");
           
        }
        $ext = pathinfo($_FILES['pic'.$ite]['name'], PATHINFO_EXTENSION);
        $config["file_name"]="$ite.jpg";
        $this->transfer.="$ite.$ext";
        $this->upload->initialize($config);
        
        
        if(!$this->upload->do_upload("pic".$ite)){
            $this->transfer.=lang('msg_errorimage').' '.$ite;
        }
        }

我只是将文件夹从“3”重命名为“3a”,然后打开图像的链接并收到 404 错误,然后将文件夹的名称从“3a”改回“3”,现在显示正确的图像.

4

3 回答 3

5

尝试加载图像时在文件扩展名后放置一些参数,

例如 1.jpg?t=<?=time()?>

因为有时浏览器会缓存数据,所以如果您加载同名文件,
它将加载缓存而不是真实文件。

即使在 js 文件中,有时如果您更改 js 文件中的某些代码行,它
不会使您所做的更改生效,您需要强制刷新缓存
才能看到更改,它可以是 ctrl+F5 或只是在文件扩展名后放置参数

例如:jsfile.js?t=<?=time()?>

于 2012-11-02T15:12:47.057 回答
5

选项 1:清理缓存(CTRL+F5 强制从服务器加载页面),选项 2:如果可能,选择唯一的文件名。

请注意,选项 1 将导致整个页面从服务器重新加载,而选项 2 将仅加载新图像。

于 2012-11-02T16:27:23.353 回答
2

如果您想从该页面中删除捕获,则需要在页面顶部包含以下内容:-

$this->output->set_header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); 
$this->output->set_header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
$this->output->set_header("Cache-Control: post-check=0, pre-check=0", false); 
$this->output->set_header("Pragma: no-cache");
于 2012-11-02T19:44:02.680 回答