Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Как определить является ли файл картинкой


Автор: NLspieler 18.8.2011, 07:44
Как определить является ли файл картинкой,
без модуля filinfo?

Автор: ayax2005 18.8.2011, 08:20
mime_content_type

Автор: NLspieler 18.8.2011, 15:25
Цитата(ayax2005 @  18.8.2011,  08:20 Найти цитируемый пост)
mime_content_type 

Fatal error: Call to undefined function mime_content_type() in

Эта функция относится к той же библиотеке, что и fileinfo.

Возможно ли как то по-другому решить задачу, например при помощи библиотеки gd?

Автор: ayax2005 18.8.2011, 15:29
Можно читать бинарно файл - в начале файла всегда содержится информация о типе.
А проще всего - выдрите из исходника mime_content_type и определите где-нибудь у себя
http://pear.php.net/reference/PHP_Compat-1.6.0a1/__filesource/fsource_PHP_Compat__PHP_Compat-1.6.0a1CompatFunctionmime_content_type.php.html

Автор: NLspieler 18.8.2011, 18:06
Цитата(ayax2005 @  18.8.2011,  15:29 Найти цитируемый пост)
http://pear.php.net/reference/PHP_Compat-1...t_type.php.html

Не сработало, так как не хватает некой `file` команды, поэтому ответ у функции всегда application/octet-stream

Решил задачу при помощи функции http://www.php.net/manual/en/function.getimagesize.php.
Если файл - не картинка, то функция возвращает false. 

Автор: skyboy 19.8.2011, 00:11
что там за ОС? Линукс? Возможность запуска команд оболочки(http://php.net/system(), backtick operator) имеется? тогда можно выполнить http://linux.about.com/library/cmd/blcmdl1_file.htm?rd=1, который, собственно, и используют в корыстных целях модули fileinfo и mime_content_type.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)