如何在php中重新上传具有相同文件名的图像时清除浏览器缓存?

2022-08-30 18:18:55

我有一个项目列表,其中还包含一个图像缩略图。有时我需要更改缩略图,但保持文件名相同。有没有办法强制浏览器下载新上传的图像,而不是从浏览器缓存中获取一个?

当人们更新他们的头像时,这是非常相关的,这给一些用户带来了困惑,他们不断看到他们的旧头像,直到他们清除浏览器缓存或重新启动浏览器。


答案 1

将唯一编号附加到图像 src 的末尾

<?php

echo "<img src=../thumbnail.jpg?" . time() . ">";

仅在更新头像的表单上执行此操作

为我工作

顺便说一句,这适用于强制更新其他静态文件

即.html css文件是

<link rel="Stylesheet" href="../css/cssfile.css?<?= md5_file('cssfile.css'); ?>" /> 

答案 2

您可以使用文件的修改时间:

<?

$filename = 'avatar.jpg';
$filemtime = filemtime($filename);

echo "<img src='".$filename."?".$filemtime."'>";

//result: <img src='avatar.jpg?1269538749'>

?>

修改文件时将清除客户端缓存


推荐