PHP 强制刷新图像

问题描述 投票:0回答:5

我正在创建一个输入表单,允许用户上传图像。提交后,用户将返回到表单,顶部有一个确认位。

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

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

谢谢

php
5个回答
31
投票

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

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

在 PHP 中

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

15
投票

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

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

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

或者,为了更好的缓存,附加文件修改时间:

<img src="image.jpg?<?=filemtime('path/image.jpg')?>">

4
投票

这里的技巧是告诉浏览器不要缓存内容。您可以通过将这些语句放在其他任何内容之前(没有空格或任何内容!)来做到这一点

<?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 刷新。


0
投票

这对我来说非常有用:

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

0
投票

您可以使用 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...

© www.soinside.com 2019 - 2024. All rights reserved.