0

我正在开发一个 Web 应用程序来转换用户上传的图像。当用户更改图像时,它会以其他名称保存在服务器中并再次提供给客户端,就像 img 标签一样。返回上一个图像时出现问题。实际图像被删除,新图像是以前的图像。但是当用户再次更改时,显示的图像不是新图像,而是返回之前删除的图像。但是,显示的图像不存在。我猜它是由浏览器缓存的,但不知道如何防止这种情况。

例子:

$image1 = imagefirst.jpg
$image2 = imagechanged.jpg

//Going back:

$image3 = imagefirst.jpg
//imagechanged.jpg is deleted

//change again the image
$image4 = imagechanged.jpg

//serve to the client
<img src="imagefirst.jpg">    

//the image shown isn't the new one saved in the server, but the image deleted previously.
4

2 回答 2

2

只需将随机数添加到图像的src属性中:

<!-- 759293475438 generated randomly each time -->
<img src='imagefirst.jpg?759293475438'/>

- 为此,您可以在 PHP中使用mt_rand() 。

于 2013-09-10T11:05:42.097 回答
2

解决此问题的一个简单方法是在图像中添加一个随机字符串,以强制浏览器每次都请求新图像。您可以使用uniqid()rand()time()用于此目的:

echo "<img src='imagefirst.jpg?version=".time()."'/>";        

这将产生类似于以下内容的输出:

<img src='imagefirst.jpg?version=1378811671' />

由于查询字符串是唯一的,因此图像在浏览器中看起来会有所不同。

于 2013-09-10T11:06:36.673 回答