У меня было очень трудное время, пытаясь автоматически поворачивать изображения через PHP, когда я их загружаю. В настоящее время они отображаются сбоку при просмотре в браузере.PHP Upload with EXIF Ориентация на основе вращения
Я искал часы и нашел множество советов и примеров, но я не совсем знаю, как их реализовать.
Я также пробовал использовать код от комментатора в руководстве по PHP, без везения.
Это код, я ссылки:
<?php
$image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$image = imagerotate($image,90,0);
break;
case 3:
$image = imagerotate($image,180,0);
break;
case 6:
$image = imagerotate($image,-90,0);
break;
}
}
// $image now contains a resource with the image oriented correctly
?>
Вот страница я работаю с прямо сейчас. Кажется, что он работает нормально, но изображения выходят вбок. Я удалил код из многочисленных неудачных попыток заставить ротацию работать.
<?php
include 'includes/democonnect.php';
$cnum=$_POST['cnum'];
$amount1=$_POST['amount1'];
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["uploadReceipt"]["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["uploadReceipt"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
$filename = 'receipt'.time() . basename($_FILES["uploadReceipt"]["name"]);
// Check file size
if ($_FILES["uploadReceipt"]["size"] > 5000000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" && $imageFileType != "bmp") {
echo "Sorry, only JPG, JPEG, PNG, GIF, and BMP 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["uploadReceipt"]["tmp_name"], $target_dir.$filename)) {
echo "The file ". $filename. " has been uploaded.";
$query = "INSERT INTO tblReceiptUpload
(cnum,pointer1,amount1)
VALUES(?,?,?)";
$params1 = array($cnum,$filename,$amount1);
$result = sqlsrv_query($conn,$query,$params1);
sqlsrv_close($conn);
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
Любая помощь была бы чрезвычайно оценена!
Зачем вам «удалять» единый код, о котором вы просите о помощи? – miken32
Код, который я написал выше моего кода, - это то, что я пытался реализовать, но я не мог заставить его работать. Мое использование «раздели» было, вероятно, неверным. – Travis
Но там нет кода, связанного с вращением изображения. У вас есть два фрагмента кода, вы говорите: «Поместите их вместе для меня» вместо «Я попытался собрать их вместе, но я получаю сообщение об ошибке x». – miken32