загрузка изображений — функция php imagerotate ()

Мой сайт может загружать фотографии, процесс хорошо работает на компьютере. Если я загружаю изображение через мобильный телефон вращается. Я видел, что это известная проблема, и у нее есть решение.
Я пробую одно из решений и получаю сообщение об ошибке при загрузке изображения в папку:

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

Решение

Вы сохраняете возвращаемое значение imagerotate, как если бы это было имя файла.

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

Но это не так imagerotate возвращает ресурс.

Так что просто измените все эти строки:

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

с

imagerotate($file, 180, 0);

Я только что узнал imagerotate существовала. Я не уверен, как именно это работает. Вам может понадобиться сохранить файл в какой-то момент.

1

Другие решения

Я изменил это на:

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

По вопросам рекламы [email protected]