使用PHP创建或覆盖图像

时间:2013-06-27 00:28:51

标签: php

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

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

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

更新图像的表单在服务器上具有value实际转换和散列图像的输入。如果用户修改输入URL并提交更新表单,则可以覆盖服务器上的当前图像。但事情并没有发生。[编辑,解决了。我正在使用错误的HASH变量。]

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

1 个答案:

答案 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());?>" />