PHP强制刷新图像

时间:2013-05-13 16:00:42

标签: php

我正在创建一个允许用户上传图片的输入表单。提交后,用户将返回到顶部具有构造位的表单。

然后,通过查询将任何已提交的图像预览到存储图像URL的MySQL数据库。但是,如果用户上传照片,则会对其进行预览,然后他们决定更改该照片并重新提交表单,当您将照片转回到新照片未显示的表单时,除非您手动按下浏览器上的刷新。

有没有办法强制刷新/缓存删除或刷新该特定图像而不是整个页面?

由于

5 个答案:

答案 0 :(得分:28)

将修改后的日期作为查询添加到图像的末尾。

<img src="/images/photo.png?=1239293"/>

在PHP中

<img src="/images/photo.png?=<?php echo filemtime($filename)?>"/>

答案 1 :(得分:13)

在PHP中,您可以发送随机数或当前时间戳:

<img src="image.jpg?<?=Date('U')?>">

<img src="image.jpg?<?=rand(1,32000)?>">

答案 2 :(得分:3)

这里的诀窍是告诉浏览器不要缓存内容。您可以通过将这些语句放在其他任何内容之前(没有空格或任何东西!)

来完成此操作
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

根据您加载图片的方式,您还可以使用jQuery对图片进行javascript刷新。

答案 3 :(得分:0)

    You could replace the current image by a new one using JavaScript:

    <div id="imageHolder">this is where the image will show</div>
    <script type="text/javascript">
    function myfunction(){
    document.getElementById("imageHolder").innerHTML="<div id=\"imageHolder\"><img src='imagefolder/imagename.jpg' alt=''/></div>";
    }</script>

完成课程上传后,您需要触发myfunction功能...

答案 4 :(得分:0)

这对我很有用:

image.jpg?=<?php echo rand() . "\n";?>