Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка размера картинки
Форумы портала PHP.SU » » Графика в PHP » Проверка размера картинки

Страниц (1): [1]
 

1. neatek - 19 Июня, 2011 - 00:08:41 - перейти к сообщению
Привет всем,

Можно ли проверить размер картинки при загрузке её на сайт?

Знаю про http://www.php.su/imagesy " target="_blank">imagesy и http://www.php.su/imagesx " target="_blank">imagesx , не знаю как реализовать.
2. Давит - 19 Июня, 2011 - 09:30:59 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.        $x = imagesx($img);
  2.        $y = imagesy($img);
  3.       if($x==100 AND $y=120 {
  4.           copy("...", "...");
  5.       }
3. altermann - 19 Июня, 2011 - 09:32:31 - перейти к сообщению
или посмотрите функцию getimagesize
4. neatek - 19 Июня, 2011 - 13:13:53 - перейти к сообщению
Давит, это не то, это если картинка уже лежит на сервере, а надо при загрузке чтобы отсеивало.

Как через getimagesize сделать?
У меня через это проверка типа файла.
5. altermann - 19 Июня, 2011 - 13:34:03 - перейти к сообщению
getimagesize - просто информацию о картинке возвращает в виде массива.
Так вы бы сразу и говорили что вам требуется, спросили про размеры, вам и ответили.
Если вам надо проверить есть ли картинка уже на сервере, то это лучше делать по MD5 хэшу, т.к разные картинки могут иметь один и тот же размер. Ну а хэш лучше хранить в БД, так будет быстрее проверять наличие, чем читать каждый раз у существующих картинок
6. neatek - 19 Июня, 2011 - 13:50:43 - перейти к сообщению
я загрузку картинки сделал... вроде нормально...

Нужно проверить размер например чтобы загружаемая картинка была в пределах 100х100 пикселей.

PHP:
скопировать код в буфер обмена
  1. $imageinfo = getimagesize($_FILES['userfile']['tmp_name']);

Я сделал проверку по типу, по размеру(файла). А вот размер самой картинки не знаю, как?
7. movEAX - 19 Июня, 2011 - 14:28:25 - перейти к сообщению
neatek пишет:
А вот размер самой картинки не знаю, как?

Размер можно будет проверить только после того, как картинка будет уже загружена, для этого подойдет вариант Давита. При загрузке изображение сохраняется во временный файл, соотв-но путь до него лежит в $_FILES['image']['tmp_name'];
Если необходимо проверять размеры изображений на клиенте - можно воспользоваться Flash загрузчиком.
8. altermann - 19 Июня, 2011 - 14:30:42 - перейти к сообщению
Выше ж примерно описали
PHP:
скопировать код в буфер обмена
  1. $infoimg = getimagesize($_FILES['userfile']['tmp_name']);
  2. if ($imageinfo[0] > 100 || $imageinfo[1] > 100) {
  3.     // отказ от картинки или ресайз
  4. } else {
  5.     // продолжаем
  6. }

 

Powered by ExBB FM 1.0 RC1