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);
}
}
Вы совершенно неправильно используете 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");
Других решений пока нет …