Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 13:49   #1
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию Проблема с функцией imagecreatefromjpeg()

Имеется форма, частью которой является поле для загрузки файлов (а именно - изображений).

Так же есть скрипт, который контролирует, чтобы пользователи могли закачивать только изображения (проверяется разширение файла), чтобы они не превышали определённого размера и т.д.

+этот скрипт меняет размеры файла, сохраняя пропорции. Тут я использю библиотеку GD, но возникает проблема.

Имеется изображение, например pic.jpg. Если это изображение анимированное, то при попытке вызова функции типа: imagecreatefromjpeg("pic.jpg") браузер выдаёт ошибку, якобы изображение "pic.jpg" не является JPEG файлом.

Если вы сталкивались с данной проблемой, расскажите, пожалуйста, как её решали.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 23.10.2009, 13:59   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

Цитата:
Сообщение от Linel Посмотреть сообщение
Имеется изображение, например pic.jpg. Если это изображение анимированное, то при попытке вызова функции типа: imagecreatefromjpeg("pic.jpg") браузер выдаёт ошибку, якобы изображение "pic.jpg" не является JPEG файлом.

Если вы сталкивались с данной проблемой, расскажите, пожалуйста, как её решали.
формат jpeg не поддерживает анимации, так что браузер выдает абсолютно правильную ошибку
переименовав doc-файл в jpg вы не превратите его в картинку

проверяйте тип содержимого картинки функцией getimagesize(), и уже на основе типа вызывайте нужную функцию (imagecreatefromjpeg, imagecreatefromgif, imagecreatefrompng и т д)


хотя gd все-таки не умеет работать с анимацией, так что из анимированного gif-а возьмется только первый кадр

можете использовать imagemagick или другие библиотеки для обработки изображений, на форуме это неоднократн обсуждалось
свободен...
wall66 вне форума Ответить с цитированием
Старый 23.10.2009, 14:05   #3
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

Цитата:
проверяйте тип содержимого картинки функцией getimagesize()
Спасибо большое, понял в чём ошибка. Я проверял формат с помощью массива $_FILES при загрузке, где (наверно) определяется тип файла по его имени.
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 23.10.2009, 14:42   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Цитата:
Сообщение от Linel Посмотреть сообщение
Спасибо большое, понял в чём ошибка. Я проверял формат с помощью массива $_FILES при загрузке, где (наверно) определяется тип файла по его имени.
нет... там то как раз тип файла не определяется... а берется оно из MIME полей файла
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с функцией Replace... Oooleg Microsoft Office Excel 7 02.09.2009 05:22
проблема с рекурсивной функцией world12_tk Помощь студентам 2 04.03.2009 20:57
Проблема с функцией замены... dast Microsoft Office Excel 6 09.10.2008 20:30
проблема с функцией atoi Darw1n Общие вопросы C/C++ 2 08.10.2008 23:21