Warning: imagecreatefromjpeg(files/asus-dual-screen-laptop.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in Z:\home\localhost\www\web\admin\add_article.php on line 49
Warning: imagesx() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\web\admin\add_article.php on line 59
Warning: imagesy() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\web\admin\add_article.php on line 60
Warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in Z:\home\localhost\www\web\admin\add_article.php on line 72
Warning: unlink(files/asus-dual-screen-laptop.jpg) [function.unlink]: No such file or directory in Z:\home\localhost\www\web\admin\add_article.php on line 78
Вот сам код:
<?php
$path_to_90_directory = 'files/';//папка,куда будет загружаться начальная картинка и ее сжатая копия
if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{
$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory.$filename;
move_uploaded_file($source,$target);//загрузка оригинала в папку $path_to_90_directory
if(preg_match('/[.](GIF)|(gif)$/',$filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename); //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/',$filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename);//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/',$filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru
// Создание квадрата 90x90
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности
$w = 160; // квадратная 90x90. Можно поставить и другой размер.
// создаём исходное изображение на основе
// исходного файла и определяем его размеры
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения
// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w,$w);
// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0, round((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже серединку)
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src) imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
$date=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.
//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.
$avatar = $path_to_90_directory.$date.".jpg";//заносим в переменную путь до аватара.
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.
}
else
{
//в случае несоответствия формата, выдаем соответствующее сообщение
exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>");
}
//конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы
}
?>
Спустя 10 минут, 5 секунд (14.03.2010 - 00:20) qpayct написал(а):
проверь какой величины картинки ты обрабатываешь, когда выходят ошибки и чему у тебя равен upload_max_filesize в php.ini ??
Спустя 3 минуты, 59 секунд (14.03.2010 - 00:24) baka написал(а):
upload_max_filesize еще давно поставил 16M. Величина картинок самая разная, но только картинки больше 30-40кб не обрабатывает. Остается черный квадрат.
Спустя 3 минуты, 2 секунды (14.03.2010 - 00:27) qpayct написал(а):
мне так тяжело тебе сказать.... покажи именно те строки где у тебя ошибки.
погодь, тебе что thumbnail-ы по типу нужно получать?
а какой формат тебе ошибки выдаёт?
погодь, тебе что thumbnail-ы по типу нужно получать?
а какой формат тебе ошибки выдаёт?
Спустя 6 минут, 20 секунд (14.03.2010 - 00:34) baka написал(а):
В зависимости от типа загружаемого файла, будь то jpg, png, gif ошибки меняются на соответственную строку
Такое ощущение что изображение не попадает в папку, по этому выбивает ошибка failed to open stream: No such file or directory in Z:\home\localhost\www\web\admin\add_article.php on line 49
$im = imagecreatefromgif($path_to_90_directory.$filename); //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/',$filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename);//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/',$filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
Такое ощущение что изображение не попадает в папку, по этому выбивает ошибка failed to open stream: No such file or directory in Z:\home\localhost\www\web\admin\add_article.php on line 49
Спустя 2 минуты, 26 секунд (14.03.2010 - 00:36) baka написал(а):
Цитата (qpayct @ 13.03.2010 - 21:27) |
погодь, тебе что thumbnail-ы по типу нужно получать? |
Да нужны миниатюры для превью.
Спустя 2 минуты, 20 секунд (14.03.2010 - 00:38) qpayct написал(а):
х.з
мож из-за знаков тире в имени файла??

Спустя 2 минуты, 15 секунд (14.03.2010 - 00:41) baka написал(а):
Да нет, пробовал переименовывать. Пол дня не могу понять. Почти все что надо сделал, только эта проблема обрисовалась(
Спустя 1 минута, 54 секунды (14.03.2010 - 00:42) baka написал(а):
По идее ограничение не стоит нигде, даже не знаю что думать. Уже и на локалке пробовал и на сервере.
Спустя 2 минуты, 12 секунд (14.03.2010 - 00:45) qpayct написал(а):
короче возьми проверь каждую строку что она делает как и зачем. документация тебе в помощь. наверняка. "дьявол кроется в мелочах"

Спустя 1 минута, 45 секунд (14.03.2010 - 00:46) qpayct написал(а):
а если оставляешь размер, как советует автор 90х90 работает?
Спустя 1 минута, 40 секунд (14.03.2010 - 00:48) baka написал(а):
Да нет, не то... Пробовал.
Спустя 2 минуты, 21 секунда (14.03.2010 - 00:50) qpayct написал(а):
может это post_max_size ???
Спустя 1 минута, 42 секунды (14.03.2010 - 00:52) baka написал(а):
Где? В в php.ini?
Спустя 3 минуты, 19 секунд (14.03.2010 - 00:55) qpayct написал(а):
ну да, а гдеж ешо ему быть?
Спустя 4 минуты (14.03.2010 - 00:59) baka написал(а):
post_max_size тоже 16((
Попробовал поменять, только хуже стало.
Попробовал поменять, только хуже стало.
Спустя 2 минуты, 24 секунды (14.03.2010 - 01:02) qpayct написал(а):
в любом случае напиши вместо
так
и в самом начале попробуй написать
и так на всякий добавь ешо
imagecreatefromjpeg($path_to_90_directory.$filename);
так
imagecreatefromjpeg($target);
и в самом начале попробуй написать
ini_set('memory_limit', '100M');
и так на всякий добавь ешо
ini_set('gd.jpeg_ignore_warning', 1);
Спустя 2 минуты, 54 секунды (14.03.2010 - 01:05) baka написал(а):
Все то же самое( Блин сейчас возьму и удалю это все, достало)))
Спустя 2 минуты, 26 секунд (14.03.2010 - 01:07) qpayct написал(а):
а какая у тя версия GD и php кстати?
вообще по ходу это не причём но всётаки
вообще по ходу это не причём но всётаки
Спустя 2 минуты, 38 секунд (14.03.2010 - 01:10) baka написал(а):
Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.1
Спустя 3 минуты, 47 секунд (14.03.2010 - 01:14) qpayct написал(а):
5.3.1....
вот и нашлась твоя проблема походу
ошибка небось только с файлами jpg jpeg попробуй gif загрузить
вот и нашлась твоя проблема походу

Спустя 4 минуты, 46 секунд (14.03.2010 - 01:18) baka написал(а):
Да нет и гиф тупит) Во ж..а) Блин ну маленькие же отправляет и обрабатывает.
Спустя 1 минута, 55 секунд (14.03.2010 - 01:20) Nikitian написал(а):
А файл-то вообще существует? Похоже он не загружается.
Что возвращает функция move_uploaded_file()?
Что возвращает функция move_uploaded_file()?
Спустя 1 минута, 37 секунд (14.03.2010 - 01:22) qpayct написал(а):
ну тогда либо разбирай построчно либо пиши сам либо тупо поробуй заглушить ошибки собакой...
Спустя 2 минуты, 53 секунды (14.03.2010 - 01:25) baka написал(а):
Да в том то и проблема что не пойму что и по чем. Маленькие файлы скрипт отправляет и обрабатывает, а побольше пишет No such file or directory in Z:\home\localhost\www\web\admin\add_article.php on line 49. Так как будто ничего не попадает в переменную (в смысле не загружает на сервер).
Спустя 2 минуты, 46 секунд (14.03.2010 - 01:28) baka написал(а):
Да, думаю нужно оставить эту затею и искать новый выход. Ладно всем спасибо) Если кто-то знает какие-то ссылки по теме оставьте, посмотрю.