У меня есть локальный доступ к файлам, которые мне нужны для получения их типов MIME. Работа в библиотеках WAMP/LAMP, CodeIgniter и Zend. Каков наилучший способ получить информацию о типе MIME?
Получить тип MIME через PHP
Ответы (5)
Нет простого пути. Вы можете попробовать:
http://www.php.net/manual/en/function.finfo-file.php
// return mime type ala mimetype extension
$finfo = finfo_open(FILEINFO_MIME_TYPE);
Конечно, это предполагает, что вы можете установить расширения PECL.
Думаю, тебе нужна голова. Самый быстрый способ - сделать запрос головы, или в PHP под apache вы можете использовать apache_lookup_uri или в PHP 5.3 вы можете использовать FileInfo (хотя я бы по-прежнему рекомендовал apache_lookup_uri или простой запрос головы).
apache_lookup_uri
не дает вам тип MIME, насколько я знаю. FileInfo будет работать, если у вас есть PECL, как отметил @David.
- person Amadan; 07.07.2010
apache_lookup_uri()
вернул image/png
в качестве Content-Type, что является доказательством того, что это не что иное, как расширение для поддельного сопоставления типов mime. Кроме того, это может быть опасно, поскольку Apache фактически запрашивает файл и может привести к выполнению кода (не уверен в этом).
- person Alix Axel; 17.02.2011
Никогда не рекомендуется пытаться найти тип MIME на основе расширения файла, так как он, очевидно, может быть переименован при загрузке использованного whos - с .exe на .jpg
Обнаружение реального типа пантомимы является частью ваших общих мер безопасности.
Разберите файл mime.types
вашего Apache.
Попробуйте встроенную функцию CI "get_mime_by_extension($file)". Вы можете найти его в файле «system/helpers/file_helper.php».