I have a function that compresses a photo proportionally:

/* $w_o и h_o - ширина и высота выходного изображения */ function resize($newName, $w_o = false, $h_o = false) { if (($w_o < 0) || ($h_o < 0)) { echo "Некорректные входные параметры"; return false; } $types = array('image/png', 'image/jpeg', 'image/jpg'); // Массив с типами изображений $directory = '../img/avatars/'; $directory_to_file = $directory . $newName; list($w_i, $h_i, $type) = getimagesize($directory_to_file); // Получаем размеры и тип изображения (число) $ext = $types[$type]; // Зная "числовой" тип изображения, узнаём название типа if ($ext) { $func = 'imagecreatefrom'.$ext; // Получаем название функции, соответствующую типу, для создания изображения $img_i = $func($newName); // Создаём дескриптор для работы с исходным изображением } else { echo 'Некорректное изображение'; // Выводим ошибку, если формат изображения недопустимый return false; } /* Если указать только 1 параметр, то второй подстроится пропорционально */ if (!$h_o) $h_o = $w_o / ($w_i / $h_i); if (!$w_o) $w_o = $h_o / ($h_i / $w_i); $img_o = imagecreatetruecolor($w_o, $h_o); // Создаём дескриптор для выходного изображения imagecopyresampled($img_o, $img_i, 0, 0, 0, 0, $w_o, $h_o, $w_i, $h_i); // Переносим изображение из исходного в выходное, масштабируя его $func = 'image'.$ext; // Получаем функция для сохранения результата return $func($img_o, $newName); // Сохраняем изображение в тот же файл, что и исходное, возвращая результат этой операции } /* Вызываем функцию с целью уменьшить изображение до ширины в 66 пикселей, а высоту уменьшив пропорционально, чтобы не искажать изображение */ resize($newName, 66); // Вызываем функцию if ( !resize($newName, 66) ) { echo "Функция не выполнена!"; } else { move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile); echo "Фотография была загружена!"; } 

But when it is executed, it gives an error:

Warning : getimagesize (../ img / avatars / 6.png): There is no such file or directory in W: \ domains \ mysite \ settings.php on line 113 Incorrect image

What does he not see? Ways, etc. seems to be correct ..

  • 6.png where lies, next to the function file? For reliability, you must specify the full path to the file. - fedornabilkin
  • where did you point the way? couple I can not find this line - Shokhaa
  • if you transfer just 6.png then it searches for it in the same directory as the executable file. Since you have a picture in another directory, it is quite logical that such an error appears. You say that the paths are indicated, but they are not indicated anywhere. - teran 1:16 pm
  • @teran I corrected, 9 10 11 lines are changed (added $ directory = ...), but he still does not see the path that is specified in Warning (also corrected), although there is such a path - Iamready
  • I pointed the way, look at the corrected question, but he still does not see the way, although he is like this - Iamready

0