Почему возникает проблема «Изменение ориентации изображения» что происходит с помощью камеры устройства и загружается на FTP-сервер, сохраняется в следующем сценарии?

я использую PHP 5.5.19 для моего сайта.

Я разрешаю пользователям фотографировать, используя камеру интеллектуального устройства, и загружать одно и то же изображение на FTP-сервер с помощью PHP.

Проблема, с которой я сталкиваюсь, связана с изменением ориентации изображения.

Предположим, если пользователь берет фотографию в ориентации своего устройства «Портрет» и загружает эту же фотографию на FTP-сервер, ориентация загруженной фотографии должна быть только «Портретной», но в моем случае она меняется на «Пейзаж» и наоборот. ,

Чтобы исправить эту проблему, я написал следующий код, но он не сработал для меня. Поэтому, попробовав все, я прошу вашей помощи.

HTML код:

<form id="request_form" method="post" class="form-horizontal" enctype="multipart/form-data" action="">
<input type="file" name="student_image" id="student_image" accept="image/*" capture/>
</form>

PHP-код:

if(!empty($_FILES['student_image']['name'])) {

$ext = pathinfo($_FILES['student_image']['name'], PATHINFO_EXTENSION);

$student_image_name = 'student_'.'.'.$ext;
$_POST['student_name'] = $student_image_name;

$ftp_server="52.237.5.85";
$ftp_user_name="myservercreds";
$ftp_user_pass="MyServerCreds";$file = $_FILES['student_image']['name'];//tobe uploaded
$remote_file = "/Students/".$_POST['student_name'];// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// turn passive mode on
ftp_pasv($conn_id, true);

if($login_result) {
if(!is_dir('ftp://myservercreds:MyServerCreds@52.237.5.85/Students')) {
ftp_mkdir($conn_id, "/Students");
ftp_chmod($conn_id, 0777, '/Students');
}

if(!file_exists("/Students/".$student_image_name))
$file_upload_status = ftp_put($conn_id, $remote_file, $file, FTP_BINARY);

//Below is the code I've written to overcome this issue but unfortunately same thing is happening again
if($file_upload_status) {
$exif = exif_read_data($remote_file);
$ort = $exif['COMPUTED']['Orientation'];
switch($ort) {

case 3: // 180 rotate left
$image = imagecreatefromjpeg($remote_file);
$rotated = imagerotate($image, 180, -1);
break;

case 6: // 90 rotate right
$image = imagecreatefromjpeg($remote_file);
$rotated = imagerotate($image, -90, -1);
break;

case 8:    // 90 rotate left
$image = imagecreatefromjpeg($remote_file);
$rotated = imagerotate($image, 90, -1);
break;
}

imagejpeg($rotated, $remote_file);
$success_message = 'Photo Successfully Uploaded';
}
}
// close the connection
ftp_close($conn_id);
}

Если вам нужна дополнительная информация о проблеме, с которой я столкнулся, пожалуйста, дайте мне знать.

Благодарю.

0

Решение

Я предполагаю, что вам нужно ftp_put после его поворота, -save localy — rotate, затем ftp put.

1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector