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