Изображение загружено, но его размеры остаются прежними

if ( $_FILES["ufile"]["type"] [$i] == "image/jpeg" || $_FILES["ufile"]["type"] [$i] == "image/jpg" || $_FILES["ufile"]["type"] [$i] == "image/png" || $_FILES["ufile"]["type"] [$i] == "image/gif" )
{
if ($_FILES["ufile"]["type"] [$i] == "image/png" || $_FILES["ufile"]["type"] [$i] == "image/gif" || $_FILES["ufile"]["type"] [$i] == "image/jpeg" || $_FILES["ufile"]["type"] [$i] == "image/jpg" )
{
$file=$_FILES["ufile"]["tmp_name"];
list($width, $height) = getimagesize($file);
$new_width = 200;
$new_height = 500;
$dst_image = imagecreatetruecolor($new_width,$new_height);
$src_image = imagecreatefromjpeg($_FILES["ufile"]["tmp_name"]);
imagecopyresized ($dst_image, $src_image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

imagejpeg(imagecreatefromstring(file_get_contents($dst_image)), "convert.jpg");
$actual_image_name = $name[$i].'.'.'jpg';
move_uploaded_file("convert.jpg", $path.$actual_image_name);
}
}

-2

Решение

Вы совершенно неправильно используете GD. $dst_image является дескриптором изображения GD. это не файл. Так… file_get_contents() вернет логическое значение ЛОЖЬ, так как вы пытаетесь получить что-то из не имя файла imagecreatefromstring() вернет логическое ложь, так как логическое ложь не строка изображения и imagejpeg() вернет логическое значение FALSE, поскольку вы не передаете ему дескриптор GD.

Короче говоря, ваш код может быть улучшен. Вы просто предполагаете, что ничего не может пойти не так, не проверяете ошибки, и эти ошибки распространяются по всему коду.

Все, что вам действительно нужно было

image_jpeg($dst_image, 'convert.jpg');

А потом твой move_uploaded_file будут также ошибка, так как «convert.jpg» не является загруженным файлом. Это файл, который вы создали сами на сервере. Возможно, он основан на загруженном файле, но сам по себе не загруженный файл. Почему не просто

image_jpeg($dst_image, "$path/$actual_image_name");
0

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

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

По вопросам рекламы [email protected]