Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как 100% распознать jpeg? Или как сделать фильтр
 
 автор: sasha1133   (05.11.2009 в 04:28)   письмо автору
 
 

Такая проблема: через форму передаётся файл (причём пользователь теоретьически может закинуть всё что угодно). Идёт проверка по $_FILES mime-type, то есть сравнивается, и если картинка имеет тип image/jpeg, то она преобразовывается в нужное разрешение. Так вот, пробовал картинку 1.png переименовать в 1.jpg - mime-type был image/jpeg. Функция по преобразованию картинки выдала ошибку. Как можно более достоверно определить, что картинка именно jpeg?

А ещё, было бы хорошо, если бы когда пользователь нажимает "обзор", чтобы выбрать файл, там был фильтр *.jpg, так было бы проще и юзеру, и меньше всякой гадости бы на сайт заливали))

  Ответить  
 
 автор: sim5   (05.11.2009 в 09:52)   письмо автору
 
   для: sasha1133   (05.11.2009 в 04:28)
 

getimagesize()

  Ответить  
 
 автор: sasha1133   (05.11.2009 в 16:50)   письмо автору
 
   для: sim5   (05.11.2009 в 09:52)
 

Она ж вроде бы размеры в пикселах возвращает. Объясните пожалуйста как пользоваться

  Ответить  
 
 автор: sim5   (05.11.2009 в 17:05)   письмо автору
 
   для: sasha1133   (05.11.2009 в 16:50)
 

Функция getimagesize() определяет размер изображения GIF, JPG, PNG, SWF, PSD, TIFF или BMP и возвращает размеры, тип файла и высоту/ширину текстовой строки, используемой внутри нормального HTML-тэга IMG.

Возвращает массив из 4 элементов. Индекс 0 содержит ширину/width изображения в пикселах. Индекс 1 содержит высоту/height. Индекс 2 это флаг, указывающий тип изображения. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(байтовый порядок intel), 8 = TIFF(байтовый порядок motorola), 9 = JPC, 10 = JP2, 11 = JPX. Индекс 3 это текстовая строка с корректной строкой height="yyy" width="xxx", которая может использоваться непосредственно в тэге IMG.

С изображениями JPG возвращаются два дополнительных индекса: channel и bits. channel имеет значение 3 для RGB-рисунков и 4 для CMYK-рисунков. bits это количество битов для каждого цвета.

Если доступ к файлу filename изображения невозможен или если это неправильное изображение, getimagesize() возвратит NULL и сгенерирует предупреждение.

Необязательный параметр imageinfo позволяет извлекать расширенную информацию из файла изображения. В настоящее время возвращается различные JPG APP-маркёры в ассоциативном массиве. Некоторые программы используют эти APP-маркёры для внедрения текстовой информации в изображения. Обычным является внедрение IPTC-информации http://www.iptc.org/ в маркёр APP13. Вы можете использовать функцию iptcparse() для разбора двоичного маркёра APP13 в нечто читабельное.

Поддержка TIFF была введена в PHP 4.2. Поддержка JPEG2000 была введена в PHP 4.3. Поддержка URL была введена в PHP 4.0.5.

Эта функция не требует библиотеки GD image.

  Ответить  
 
 автор: sasha1133   (06.11.2009 в 02:51)   письмо автору
 
   для: sim5   (05.11.2009 в 17:05)
 

Спасибо за мего подробный ответ!

  Ответить  
 
 автор: Trianon   (05.11.2009 в 17:06)   письмо автору
 
   для: sasha1133   (05.11.2009 в 16:50)
 

>Она ж вроде бы размеры в пикселах возвращает.
не только.

>Объясните пожалуйста как пользоваться

как и любой другой. php.net/getimagesize

  Ответить  
 
 автор: Лена   (05.11.2009 в 10:19)   письмо автору
 
   для: sasha1133   (05.11.2009 в 04:28)
 

exif_imagetype() работает быстрее, чем getimagesize()

  Ответить  
 
 автор: sim5   (05.11.2009 в 10:23)   письмо автору
 
   для: Лена   (05.11.2009 в 10:19)
 

Если только на хосте будет включена его поддержка

  Ответить  
 
 автор: Лена   (05.11.2009 в 10:49)   письмо автору
 
   для: sim5   (05.11.2009 в 10:23)
 

А почему ее могут отключить? Функция чем-то опасна?

  Ответить  
 
 автор: sim5   (05.11.2009 в 10:56)   письмо автору
 
   для: Лена   (05.11.2009 в 10:49)
 

Ни чем она не опасна, но для ее работы требуется поддержка exif, а это может быть отключено на сервере.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования