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