[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема ресайза
Hevi
Собственно файлы загружаются как надо, а вот возникла проблемка с ресайзом. Гугл не помог. По не понятным причинам возникает ошибка:
Warning: imagecreatefromjpeg(A:/home/test1.ru/www/uploaded/img_ecc593f66f418681d9fb7ed88f18685634565.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in A:\home\test1.ru\www\upload2.php on line 45

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in A:\home\test1.ru\www\upload2.php on line 46

Warning: imagedestroy(): supplied argument is not a valid Image resource in A:\home\test1.ru\www\upload2.php on line 47


Собственно сам код:
$tmp = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].$name);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagedestroy($src);
volter9
Hevi
В ошибке объеснена понятная причина: failed to open stream: No such file or directory, т.е. файл $_SERVER['DOCUMENT_ROOT'] . $name не существует, Вам надо убедится что он (файл) существует. Попробуйте вывести на экран данную строчку этот путь и результат функции file_exists() по этому пути, т.е. так:
$path = $_SERVER['DOCUMENT_ROOT'] . $name;

var_dump($path, file_exists);

Если на экран выведется переменная путь и bool(false) значит файл не существует.

_____________
Мой блог
Hevi
Цитата (volter9 @ 5.03.2015 - 20:23)
Hevi
В ошибке объеснена понятная причина: failed to open stream: No such file or directory, т.е. файл $_SERVER['DOCUMENT_ROOT'] . $name не существует, Вам надо убедится что он (файл) существует. Попробуйте вывести на экран данную строчку этот путь и результат функции file_exists() по этому пути, т.е. так:
$path = $_SERVER['DOCUMENT_ROOT'] . $name;

var_dump($path, file_exists);

Если на экран выведется переменная путь и bool(false) значит файл не существует.

именно этот файл существует. Я первым делом это проверил, даже вывожу для проверки изображение. С путями тоже парился, по разному ставил - результат один и тот же
volter9
Hevi
Можете показать весь код (если конечно там не слишком много строчек)? Точнее ту часть кода которая занимается загрузкой изображения или файл в котором находятся эти строчки:
$tmp = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].$name);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagedestroy($src);


_____________
Мой блог
Hevi
$array = array('image/gif', 'image/jpeg', 'image/png');
$array2 = array('jpg', 'jpeg', 'gif', 'png');

if(isset($_POST['submit'])) {
if($_FILES['file']['error'] == 0) {

if($_FILES['file']['size'] < 5000 || $_FILES['file']['size'] > 50000000) {
echo 'Размер изображения не подходит!';
} else {
preg_match('#\.([a-z]+)#iu', $_FILES['file']['name'], $matches);
if(isset($matches[1])) {
$matches[1] = mb_strtolower($matches[1]);

$temp = getimagesize($_FILES['file']['tmp_name']);
$name = '/uploaded/img_'.md5($_FILES['file']['name']).rand(10000, 99999).'.'.$matches[1];

$max_size = 150;
$min_size = 50;
$old_width = $temp[0];
$old_height = $temp[1];

if($old_width > $max_size || $old_height > $max_size) {
if($old_width > $max_size) {
$radio = ($max_size * 100) / $old_width;
$new_width = floor(($old_width * $radio) / 100);
$new_height = floor(($old_height * $radio) / 100);

} else if($old_height > $max_size) {
$radio = ($max_size * 100) / $old_height;
$new_width = floor(($old_width * $radio) / 100);
$new_height = floor(($old_height * $radio) / 100);
}

if($matches[1] == 'jpg' || $matches[1] == 'jpeg') {
$tmp = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].$name);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagedestroy($src);
} else if($matches[1] == 'png') {
$tmp = imagecreatetruecolor($new_width, $new_height);
$src = imagecreatefrompng($_SERVER['DOCUMENT_ROOT'].$name);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
imagedestroy($src);
}

}


if(!in_array($matches[1], $array2)){
echo 'Не допустимое расширение файла';
} else if(!in_array($temp['mime'], $array)) {
echo 'Разрешено загружать только изображения формата jpg/jpeg, png, gif';
} else if(!move_uploaded_file($_FILES['file']['tmp_name'],'.'.$name)) {
echo 'Изображение не загружено! Ошибка';
} else if($old_width < $min_size || $old_height < $min_size) {
echo 'Размер изображения слишком мал. Минимальная ширина и высота составляет 50 px';
} else {
echo 'Сделано!';
echo '<img src="'.$name.'">';
}
}
else {
echo 'Данный файл не является картинкой. Принимаемое типы файлов: jpg, png, gif';
}
}
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.