防止浏览器缓存的图像

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

示例:</ p>

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

//返回:

$ image3 = imagefirst.jpg
// imagechanged.jpg被删除

//再次更改图像
$ image4 = imagechanged.jpg

//为客户提供服务
&lt; img src =“imagefirst.jpg”&gt;

//显示的图像不是保存在服务器中的新图像,而是之前删除的图像。
</ code> </ pre>
</ div>

展开原文

原文

I'm developing a web application to transform images uploaded by the user. When the user changes the image, it is saved with an other name in the server and served again to the client, like an img tag. I have a problem when going back to the previous image. The actual image is deleted, and the new image is the previous. But when it is changed again by the user, the image shown isn't the new image, but the deleted image before go back. However, the image shown does not exist. I guess it is cached by the browser, but don't know how to prevent this.

Example:

$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.

2个回答



只需将随机数添加到图像的 src </ code>属性中:</ p>

 < 代码>&lt;! -  759293475438每次随机生成 - &gt; 
&lt; img src ='imagefirst.jpg?759293475438'/&gt;
</ code> </ pre>

- 为此,您可以在PHP中使用 mt_rand()。</ p>
</ div>

展开原文

原文

Simply add random number to image's src property:

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

-to do this, you can use mt_rand() in PHP.

doutan1970
doutan1970 太简单! 谢谢!
接近 7 年之前 回复



此问题的一个简单解决方案是向图像添加随机字符串以强制浏览器每次请求新图像 。 您可以使用 uniqid()</ code> rand()</ code> time()</ code> 用于此目的:</ p>

  echo“&lt; img src ='imagefirst.jpg?version =”。time()。“  “/&gt;“中;

</ code> </ pre>

这将产生类似于的输出:</ p>

 &lt; img src ='imagefirst.jpg?version =  1378811671'/&gt; 
</ code> </ pre>

由于查询字符串是唯一的,因此图像与浏览器不同。</ p>
</ div>

展开原文

原文

A simple solution to this problem would be to add a random string to the image to force the browser to request for a new image every time. You can use uniqid(), rand(), or time() for this purpose:

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

This will produce output similar to:

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

As the query string is unique, the image would appear different to the browser.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐