即使上传了新图片,仍然显示旧图片

3

我正在使用PHP上传文件,并在上传完成后立即显示它。有时会显示旧的图像,而不是新上传的图像。但是刷新页面就会显示新的图像。我该如何解决这个问题?我正在使用Apache Web服务器。

3个回答

6
由于浏览器缓存的原因,您可以尝试在文件名路径中添加一个随机数,例如:
<img src="image.jpg?rand=<?php echo rand(); ?>" />

当然,rand是由随机函数(PHP / Javascript)每次生成的。

2
请注意,将此选项设置为“ALWAYS”将基本上禁用该图像的缓存,因此您可能只希望在上传后立即显示图像时使用此选项。 - Carlos Campderrós

4

您正在获取缓存图像,为了将随机值添加到图像源中,可以这样做:

your_image.png?t=<?php echo time(); ?>

4

这样,只要图片没有被修改,您就可以将其缓存,并在其被修改后立即提供新鲜的图片。

<img src="image.jpg?t=<?php echo filemtime('image.jpg'); ?>" />

注意:这不会完全禁用缓存,只有在可用的情况下提供新鲜的图像。

2
被低估的答案!我不想完全阻止缓存。+1 - Lucius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接