php imagerotate()函数

时间:2016-05-02 22:52:52

标签: php image-uploading image-rotation

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

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 )

2 个答案:

答案 0 :(得分:1)

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

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

但是,自official documentation返回资源以来,情况并非如此。

所以只需改变所有这些行:

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

imagerotate($file, 180, 0);

我刚刚学会了imagerotate。我不确定它是如何工作的。您可能需要在某个时候保存文件。

答案 1 :(得分:0)

我把它改为:

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