나는 내 웹 사이트에 대해 PHP, jQuery, AJAX, HTMl5, 부트 스트랩 프레임 워크 (v.3.3.0)을 사용하고 있습니다.jQuery/PHP를 사용하여 스마트 장치에서 캡처하고 업로드 한 이미지의 방향을 어떻게 조정해야합니까?
나는 사용자가 장치의 카메라를 사용하여 사진을 캡처하고 서버에 업로드 할 수 있도록 허용하고 있습니다.
내가 직면 한 문제는 캡처 한 이미지를 업로드 할 때 서버에 저장된 이미지의 방향이 변경된다는 것입니다. 즉 사진을 촬영하는 동안 휴대 전화의 방향이 세로이고 해당 세로 방향 이미지가 서버에로드되면 서버에 저장된 이미지의 방향이 가로 방향으로 변경됩니다.
어떻게해야합니까?
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>
jQuery를-AJAX 코드 :
$('#request_form').submit(function(e) {
var form = $(this);
var formdata = false;
if(window.FormData) {
formdata = new FormData(form[0]);
}
var formAction = form.attr('action');
$.ajax({
url : 'request.php',
type : 'POST',
cache : false,
data : formdata ? formdata : form.serialize(),
contentType : false,
processData : false,
success: function(response) {
var responseObject = $.parseJSON(response);
if(responseObject.error_message) {
if ($(".alert-dismissible")[0]) {
$('.alert-dismissible').remove();
}
alert(responseObject.error_message);
} else {
alert("Success");
}
}
});
e.preventDefault();
});
PHP 코드 :
다음
내 코드입니다<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["student_image"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["student_image"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["student_image"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["student_image"]["tmp_name"], $target_file)) {
echo "The file ". basename($_FILES["student_image"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
파일을 업로드 할 때 문제가 없습니다. 파일이 업로드 중입니다. 문제는 업로드 된 이미지의 방향 변경 때문입니다. 나는 그 일을 피하고 싶다. 캡처되고 업로드 된 이미지의 방향은 동일해야합니다.
내 문제와 관련하여 추가 정보가 필요하면 알려주십시오.
미리 감사드립니다.
당신이 내가 작성한 코드에 따라 답을 보여 주시겠습니까 함수? – PHPLover
코드에 맞는 대답을 편집했습니다. – AndreaBogazzi
답변을 주셔서 감사합니다.하지만 내 서버에 설치할 수 없기 때문에 Imagick 확장 기능을 사용하고 싶지 않습니다. 이 일을 끝낼 수있는 다른 해결책을 제게 제공해 주시겠습니까? – PHPLover