Получить тип MIME через PHP

У меня есть локальный доступ к файлам, которые мне нужны для получения их типов MIME. Работа в библиотеках WAMP/LAMP, CodeIgniter и Zend. Каков наилучший способ получить информацию о типе MIME?


person StackOverflowNewbie    schedule 07.07.2010    source источник


Ответы (5)


Нет простого пути. Вы можете попробовать:
http://www.php.net/manual/en/function.finfo-file.php

// return mime type ala mimetype extension
$finfo = finfo_open(FILEINFO_MIME_TYPE);

Конечно, это предполагает, что вы можете установить расширения PECL.

person David Titarenco    schedule 07.07.2010

Думаю, тебе нужна голова. Самый быстрый способ - сделать запрос головы, или в PHP под apache вы можете использовать apache_lookup_uri или в PHP 5.3 вы можете использовать FileInfo (хотя я бы по-прежнему рекомендовал apache_lookup_uri или простой запрос головы).

person nathan    schedule 07.07.2010
comment
apache_lookup_uri не дает вам тип MIME, насколько я знаю. FileInfo будет работать, если у вас есть PECL, как отметил @David. - person Amadan; 07.07.2010
comment
apache_lookup_uri среди прочего возвращает 'content_type', который является типом mime. - person nathan; 07.07.2010
comment
Я переименовал один из моих файлов .PHP в .PNG, и apache_lookup_uri() вернул image/png в качестве Content-Type, что является доказательством того, что это не что иное, как расширение для поддельного сопоставления типов mime. Кроме того, это может быть опасно, поскольку Apache фактически запрашивает файл и может привести к выполнению кода (не уверен в этом). - person Alix Axel; 17.02.2011
comment
@Alix-Axel кажется достаточно очевидным, поскольку в apache нет никакого обнюхивания и он полагается на сопоставление расширений файлов с типами мультимедиа. - person nathan; 10.04.2011

Никогда не рекомендуется пытаться найти тип MIME на основе расширения файла, так как он, очевидно, может быть переименован при загрузке использованного whos - с .exe на .jpg

Обнаружение реального типа пантомимы является частью ваших общих мер безопасности.

person Christof Coetzee    schedule 21.01.2012

Разберите файл mime.types вашего Apache.

person Amadan    schedule 07.07.2010

Попробуйте встроенную функцию CI "get_mime_by_extension($file)". Вы можете найти его в файле «system/helpers/file_helper.php».

person Craig Myles    schedule 17.03.2011