如何在php中重新上传具有相同文件名的图像时清除浏览器缓存?
2022-08-30 18:18:55
我有一个项目列表,其中还包含一个图像缩略图。有时我需要更改缩略图,但保持文件名相同。有没有办法强制浏览器下载新上传的图像,而不是从浏览器缓存中获取一个?
当人们更新他们的头像时,这是非常相关的,这给一些用户带来了困惑,他们不断看到他们的旧头像,直到他们清除浏览器缓存或重新启动浏览器。
我有一个项目列表,其中还包含一个图像缩略图。有时我需要更改缩略图,但保持文件名相同。有没有办法强制浏览器下载新上传的图像,而不是从浏览器缓存中获取一个?
当人们更新他们的头像时,这是非常相关的,这给一些用户带来了困惑,他们不断看到他们的旧头像,直到他们清除浏览器缓存或重新启动浏览器。
将唯一编号附加到图像 src 的末尾
即
<?php
echo "<img src=../thumbnail.jpg?" . time() . ">";
仅在更新头像的表单上执行此操作
为我工作
顺便说一句,这适用于强制更新其他静态文件
即.html css文件是
<link rel="Stylesheet" href="../css/cssfile.css?<?= md5_file('cssfile.css'); ?>" />
您可以使用文件的修改时间:
<?
$filename = 'avatar.jpg';
$filemtime = filemtime($filename);
echo "<img src='".$filename."?".$filemtime."'>";
//result: <img src='avatar.jpg?1269538749'>
?>
修改文件时将清除客户端缓存