删除和替换图像文件但仍显示旧图像

Posted

技术标签:

【中文标题】删除和替换图像文件但仍显示旧图像【英文标题】:deleting and replacing image file but still showing old image 【发布时间】:2012-10-23 06:20:44 【问题描述】:

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

问题是,它们正在被删除和替换(当我检查特定目录时),但在该特定 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”,现在正确了图片正在显示。

【问题讨论】:

你清除缓存了吗?有时它只是从缓存中获取数据。否则,检查文件位置是否有重复位置。检查页面源以获取网页中的路径 我应该清除哪个缓存?另外,我只是将文件夹从“3”重命名为“3a”,然后打开图像的链接并收到 404 错误,然后将文件夹的名称从“3a”改回“3”,现在是正确的图像正在显示。 尝试清除浏览器的缓存。 wikihow.com/Clear-Your-Browser's-Cache 【参考方案1】:

尝试加载图像时在文件扩展名后放置一些参数, 例如 1.jpg?t=<?=time()?>

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

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

$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");

【讨论】:

以上是关于删除和替换图像文件但仍显示旧图像的主要内容,如果未能解决你的问题,请参考以下文章

Flask - 使用相同名称覆盖图像并显示新图像

在 IOS swift 应用程序中重写或删除现有的 .png 文件

在 Laravel 8 中更新图像后如何从公共文件夹中删除图像

用图像替换正常的文件上传输入

用图像替换输入类型=文件

用图像图标替换编辑和删除 html 按钮