При загрузке на мой сервер обычное изображение загружается отлично, но для некоторых изображений при создании эскиза маг вращается, и я не знаю, почему или что происходит с моим кодом?Работа с изображениями, эскиз искажен?
Обратите внимание: я использую старый синтаксис, и я знаю, что это уродливо, но я ленив, и он работает.
<? session_start(); ?>
<? include('header.inc.php'); ?>
<?
if(isset($_POST['upload_Submit'])) {
$_SESSION['success'] = 0;
$upPath = "/home/dolphina/public_html/images/";
$fileName = uniqid(time().date(mdY));
$_SESSION['upload_Error'] = 0;
$error_Log = "<ul>";
if ($_FILES['upload_Image']['size'] > 10000000) {
$error_Log .= "<li>image is greater than 10 megabyte</li>";
$_SESSION['upload_Error'] = 1;
}
if (($_FILES['upload_Image']['type'] == "image/gif") || ($_FILES['upload_Image']['type'] == "image/pjpeg") || ($_FILES['upload_Image']['type'] == "image/jpeg") || ($_FILES['upload_Image']['type'] == "image/png")) {
if($_FILES['upload_Image']['type'] == "image/gif") {
$fileExt = ".gif";
}
if($_FILES['upload_Image']['type'] == "image/pjpeg") {
$fileExt = ".jpg";
}
if($_FILES['upload_Image']['type'] == "image/jpeg") {
$fileExt = ".jpeg";
}
if($_FILES['upload_Image']['type'] == "image/png") {
$fileExt = ".png";
}
} else {
$error_Log .= "<li>invalid image type</li>";
$_SESSION['upload_Error'] = 1;
}
if(!$_POST['upload_Caption']) {
$error_Log .= "<li>no caption entered</li>";
$_SESSION['upload_Error'] = 1;
}
if(!$_POST['upload_Password']) {
$error_Log .= "<li>no password entered</li>";
$_SESSION['upload_Error'] = 1;
}
if($_POST['upload_Password'] != "3") {
$error_Log .= "<li>wrong password</li>";
$_SESSION['upload_Error'] = 1;
}
$error_Log .= "</ul>";
if($_SESSION['upload_Error'] == 1) {
echo $error_Log;
$_SESSION['upload_Error'] = 0;
} else {
//COPIES TEMP FILE TO PATH
copy($_FILES['upload_Image']['tmp_name'], $upPath."pics/".$fileName.$fileExt);
$first=ImageCreateFromJPEG($upPath."pics/".$fileName.$fileExt);
echo "GOT HERE";
//CREATES AND COPIES THUMBNAIL TO PATH
function make_thumb($src, $dest, $desired_width) {
/* read the source image */
$source_image = imagecreatefromjpeg($src);
$width = imagesx($source_image);
$height = imagesy($source_image);
/* find the "desired height" of this thumbnail, relative to the desired width */
$desired_height = floor($height * ($desired_width/$width));
/* create a new, "virtual" image */
$virtual_image = imagecreatetruecolor($desired_width, $desired_height);
/* copy source image at a resized size */
imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height);
/* create the physical thumbnail image to its destination */
imagejpeg($virtual_image, $dest);
}
make_thumb($upPath."pics/".$fileName.$fileExt, $upPath."thumb/thumbnail_".$fileName.$fileExt, 300);
//INSERT INTO DATABASE
$upImage = "INSERT INTO `images` (`url`, `thumb`, `date`, `time`, `ip`, `caption`) VALUES ('images/pics/".$fileName.$fileExt."', 'images/thumb/thumbnail_".$fileName.$fileExt."', CURDATE(), CURTIME(), '".$_SERVER['REMOTE_ADDR']."', '".$_POST['upload_Caption']."')";
$upFINAL = mysqli_query($mysql_conn, $upImage);
$_SESSION['success'] = 1;
}
}
if($_SESSION['success'] == 1) { echo("<div>SUCCESS</div>");}
?>
<style>
ul { padding: 0; margin: 0; margin-left: 4px; }
</style>
<form method="POST" enctype="multipart/form-data" action="upload.php">
<div>File</div>
<div><input type="file" name="upload_Image" size="40"></div>
<div>Caption</div>
<div><input type="text" name="upload_Caption" size="40"></div>
<div><input type="password" name="upload_Password" size="40"></div>
<div><input type="submit" name="upload_Submit" value="Upload Image"></div>
</form>
</div>
Можете ли вы добавить образец одного из изображений, который не подходит для процесса миниатюр? – Dekel
Также похоже, что вы используете __imagecreatefromjpeg() __ независимо от формата ввода, хотя это должно просто сбой, а не выходные изображения. – spenibus