У меня проблема с моим изображением (кодом) reszie, когда я запускаю этот код в localhost, код работает нормально, но когда я реализую его на веб-сайте. код дает предупреждение.
<br /><b>Warning</b> : imagecreatefromjpeg([-1, [], 17, 1, 18, 1, 19, 23, true, [true, true],26,1,27,1,30,1,33]) expects parameter 1 to be resource, boolean given in <b>fungsi/f_upload_banner.php</b> on line <b>34</b><br />
Это мой код для изменения размера
<?php
$target_dir = "../uploads/images/banner/";
$image1 =$_FILES['txtfile']['name'];
$filename1 = stripslashes($_FILES['txtfile']['name']);
$ext1 = substr($image1, strrpos($image1, '.')+1);
$idimg1 = md5(uniqid() . time() . $filename1) . "-1." . $ext1;
$target_file1 = $target_dir . basename($idimg1);
//identify images file
$realImages = imagecreatefromjpeg($target_file1);
$width = imageSX($realImages);
$height = imageSY($realImages);
//save for thumbs size
$thumbWidth = 150;
$thumbHeight = ($thumbWidth / $width) * $height;
//change images size
$thumbImage = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagecopyresampled($thumbImage, $realImages, 0,0,0,0, $thumbWidth, $thumbHeight, $width, $height);
//save thumbnail images
imagejpeg($thumbImage,$target_dir."thumb_".$idimg1);
//remove images object from memory
imagedestroy($realImages);
imagedestroy($thumbImage);
?>
Где не так?
Вы пытаетесь использовать исходное имя файла (после искажения) в качестве источника для imagecreatefromjpeg()
, когда вы должны использовать временное имя, назначенное процессом загрузки: $_FILES['txtfile']['tmp_name']
Сделай это:
$realImages = imagecreatefromjpeg($_FILES['txtfile']['tmp_name']);
Вы также не перемещаете загруженный файл в постоянное местоположение. Временная версия будет удалена, когда ваш скрипт завершится и файл будет утерян.
Также обратите внимание, что ваш код не выполняет никакой проверки ошибок, поэтому, если ваша загрузка не удалась, вы не узнаете об этом. Смотрите раздел PHP на Обработка загрузки файла
Других решений пока нет …