我有一个带有文本输入的表单,允许用户插入图像的URL并提交表单以将图像上传到服务器。因此,图像将转换为PNG,使用哈希重命名并保存在服务器目录images/
上
那就是要上传的代码:
if (isset($_POST["cover"])) {
imagepng(imagecreatefromstring(file_get_contents($_POST["cover"])), "images/".$hash.".png");
}
这没关系,问题是当用户尝试从新URL更新图像时。它不起作用,我没有明显的错误。
更新图像的表单在服务器上具有value
实际转换和散列图像的输入。如果用户修改输入URL并提交更新表单,则可以覆盖服务器上的当前图像。但事情并没有发生。[编辑,解决了。我正在使用错误的HASH变量。]
现在我遇到了缓存问题。如何在提交表单后显示更新的图像而无需清理浏览器缓存?
答案 0 :(得分: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());?>" />