0

我有一个带有文本输入的表单,允许用户插入图像的 URL 并提交表单以将图像上传到服务器。所以图像被转换为​​PNG,用哈希重命名并保存在服务器目录上images/ 这就是要上传的代码:

   if (isset($_POST["cover"])) {
        imagepng(imagecreatefromstring(file_get_contents($_POST["cover"])), "images/".$hash.".png");
   }

没问题,问题是当用户尝试从新 URL 更新图像时。它不起作用,我没有看到明显的错误。

更新图像的表单value在服务器上具有实际转换和散列图像的输入。如果用户修改输入的 URL 并提交更新表单,它应该覆盖服务器上的当前图像。但这并没有发生。[编辑,它解决了。我在哈希中使用了错误的 $ 变量。]

现在我有缓存问题。如何在提交表单后显示更新的图像而无需清理浏览器缓存?

4

1 回答 1

0

尝试强制浏览器清除缓存

header( 'Expires: Sat, 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' ); 

或在图像参数上附加时间戳

<img src="image.png?<?php echo(time());?>" />
于 2013-06-27T00:41:54.010 回答