PHP图像旋转不像预期的那样工作


php image rotation not working as expected

我使用php在服务器上旋转照片。当我点击一个按钮"旋转",我使用ajax加载php页面,执行旋转和刷新div与新图像。

一切正常,图像已经旋转到正确的尺寸,但图像本身没有旋转。如果我按f5刷新页面,图像显示更正。有谁知道为什么图像在刷新前不能正确显示吗?

$photo_path= $result['photo_path'];
$src = imagecreatefromjpeg($photo_path);
$rotate = imagerotate($src, 90, 0);
@unlink($photo_path);
imagejpeg($rotate,$photo_path);
imagedestroy($src);
imagedestroy($rotate);

任何想法?

try this,

$file="myimage.jpg";
$file1 = imagecreatefromjpeg($file);
$file2 = imagerotate($file1, $degrees, 0);
file_put_contents("newimage.jpg",$file2);

可能使用JavaScript,因为这是客户端的问题。

更新:这是非常基本的,但测试一下,看看它是否有效;

 <script>
  function changeImage(o){
   o.src = '//' + (new Date()).getTime(); // time to help stop caching
    }
 </script>
 <img src="//" onclick="changeImage(this)" />

我设法解决了它。谢谢你的帮助。

我所做的只是给照片一个新的文件名和更新mysql表。必须与正在缓存的图像有关,并且我保留了具有相同文件名的新旋转文件。

再次感谢。

您可以在文件的扩展名后面添加一个问号和一个随机数,这使得用户浏览器忽略本地缓存,并重新加载文件。例如:

myimage.png?789 <- Random number