GD - 旋转图像在IE和Opera中不起作用

1 php opera internet-explorer gd

我创建了一个旋转定义图像的函数.它在firefox中运行完美,但在IE和Opera中没有任何反应 - 图像重新加载但不旋转.有人知道为什么吗?这里是代码:

function rotateImage($direction, $id, $angle) {
    $dir = opendir($direction);
    if ($img = imagecreatefromjpeg($_SESSION['files'][$id]['large'])) {
        $width = imagesx ( $img );
        $height = imagesy ( $img );
        $rotate = imagerotate($img, $angle, 0);
        imagejpeg($rotate, $_SESSION['files'][$id]['large'], 100);
    }
    else {
        echo '<p>Error: image cannot be rotated</p>';
    }
    closedir($dir);
}
Run Code Online (Sandbox Code Playgroud)

And*_*ore 5

问题绝对不是您使用的浏览器,因为轮换是在服务器端完成的.

您可能遇到缓存问题或用于调用该函数的代码的问题.

你是:

  • 使用JavaScript启动重新加载?
    您的JavaScript代码可能是此处的问题.

  • 发送正确的无缓存标头?
    如果没有,您可能会遇到图像缓存在浏览器上的情况,这就是您没有看到更改的原因.发送正确的Cache-controlExpires标题,或者将随机标识符附加到图像URL(?_=$x其中$x= time()将正常工作...首选标题).

  • 发送正确的Content-type标题?
    在某些浏览器中,不发送正确的标头可能会导致不稳定的行为.您可能想尝试使用header('Content-type: image/jpeg')

  • 仅发送没有任何额外字符的图像数据?
    确保不输出除图像以外的任何内容.您的输出流不得包含任何额外字符,包括空格.