php imagerotate() function


php imagerotate() function

我的网站可以上传照片,这个过程在电脑上运行良好。如果我通过手机上传图片是旋转的。我发现这是一个已知的问题,并且有一个解决方案
我尝试了其中一种解决方案,但在将图像上传到文件夹时出错:

move_uploaded_file() expects parameter 1 to be string, resource given.

这是我用来旋转图像的代码:

$exif = exif_read_data($new_img['tmp_name']);
if (!empty($exif['Orientation'])) {
    $file = imagecreatefromjpeg($new_img['tmp_name']);
    switch ($exif['Orientation']) {
        case 3:
            $new_img['tmp_name'] = imagerotate($file, 180, 0);
            break;
        case 6:
            $new_img['tmp_name'] = imagerotate($file, -90, 0);
            break;
        case 8:
            $new_img['tmp_name'] = imagerotate($file, 90, 0);
            break;
    }
}
move_uploaded_file($new_img['tmp_name'], $UploadDirectory.$NewFileName )

您存储imagerotate的返回值,就好像它是文件名一样。

$new_img['tmp_name'] = imagerotate($file, 180, 0);

但这并不是因为imagerotate返回了一个资源。

所以只要更改所有这些行:

$new_img['tmp_name'] = imagerotate($file, 180, 0); 

带有

imagerotate($file, 180, 0);

我刚知道imagerotate的存在。我不确定它到底是怎么工作的。您可能需要在某个时刻将文件保存出来。

我将其更改为:

case 3:
    $rotate = imagerotate($file, 180, 0);
    imagejpeg($rotate,$new_img['tmp_name']);
break;