Рубрики
Uncategorized

Анализ различных методов получения файла MIME-типа с помощью PHP

Автор оригинала: David Wong.

В этой статье описывается метод получения файла MIME-типа с помощью PHP. Поделитесь с вами для справки. Подробности заключаются в следующем:

1. Используйте метод типа содержимого mime_

строка mime_content_type ( строка $имя файла )

Возвращает тип содержимого MIME для файла, определенный с помощью информации из файла magic.mime.

php 
$mime_type = mime_content_type('1.jpg'); 
echo $mime_type; // image/jpeg 
?>

Однако этот метод был оставлен, когда php5.3 был выше, и чиновник предложил вместо этого использовать метод FileInfo.

2. Используйте метод FileInfo (официальная рекомендация)

Для использования FileInfo требуется, чтобы PHP был установлен с расширением FileInfo.

Если он установлен, вы можете использовать расширение _ Найти PHP в директории директора_ fileinfo.dll (окна), fileinfo.so (linux)

откройте php.ini В fileinfo.dll Удалите предыдущее”; ” и перезапустите Apache.

file('1.jpg'); 
echo $mime_type; // image/jpeg 
?>

3. Используйте метод типа image_ type_ To_ mime_ (можно обрабатывать только типы изображений)

Использование exif_ Метод типа изображения требует, чтобы PHP был установлен с расширением EXIF, и необходимо установить расширение PHP_ Mbstring

Если он установлен, вы можете использовать расширение _ Найти PHP в директории директора_ exif.dll (окна), exif.so (linux)

откройте php.ini В mbstring.dll , exif.dll Удалите предыдущее “,” и перезапустите Apache

Советы: если вы используете суффикс имени файла для оценки, поскольку суффикс файла может быть изменен, использование суффикса файла для оценки будет неточным.

PHP для получения файла типа MIME FileInfo и других методов

Несколько дней назад я писал об использовании WordPress XMLRPC API для удаленной публикации статей. Если статья WordPress, которая будет опубликована в библиотеке статей локального сервера, содержит файлы изображений, она будет использовать API WordPress для загрузки файлов MetaWeblog.newMediaОбъект API должен предоставить тип MIME файла. Как PHP получает тип MIME файла (изображения)? Первоначально в удаленных блогах использовался PHP mime_ content_ Функция type() полностью поддерживается с использованием конфигурации по умолчанию Ubuntu server lamp для разработки. Он возвращает правильный файл с именем MIME-типа. Однако при переносе проекта API в среду CentOS 5.2 (ядро 2.6) lamp появляются следующие подсказки об ошибке:

Фатальная ошибка: Вызов неопределенной функции: mime_content_type()

Наконец, я проверил последнее руководство по PHP и обнаружил, что функция PHP mime_ content_ Функция type() была заброшена. Конечно, это не рекомендуется правительством, и его можно использовать только после правильной настройки PHP. Поэтому, чтобы получить тип MIME изображения или другого файла, фатальная ошибка: вызов неопределенной функции: содержимое mime_ Существует несколько решений ошибки типа ().

mime_ содержимое_ Функция type() определяет, чтобы получить тип MIME

Если mime был оставлен PHP 5.3.0_ content_, функция type() по-прежнему популярна, поэтому вы можете настроить PHP для включения расширения magic_ Mime. Например, в CentOS используйте phpinfo() для просмотра конфигурации PHP Apache и поиска магии mime. Если отображается “- без магии mime”, вам необходимо скомпилировать PHP и переключиться на опцию “с магией mime”. содержимое mime_ Функция type() также зависит от волшебного файла (MIME) Apache httpd_ magic.magicfile )Для определения типа MIME файла необходимо настроить адрес волшебного файла, например” – с – Mime magic =/usr/поделиться/файл/magic.mime “. В среде Windows php.ini добавляет:

Если mime был оставлен PHP 5.3.0_ content_, функция type() по-прежнему популярна, поэтому вы можете настроить PHP для включения расширения magic_ Mime. Например, в CentOS используйте phpinfo() для просмотра конфигурации PHP Apache и поиска магии mime. Если отображается “- без магии mime”, вам необходимо скомпилировать PHP и переключиться на опцию “с магией mime”. содержимое mime_ Функция type() также зависит от волшебного файла (MIME) Apache httpd_ magic.magicfile )Для определения типа MIME файла необходимо настроить адрес волшебного файла, например” – с – Mime magic =/usr/поделиться/файл/magic.mime “. В среде Windows php.ini добавляет:

Из которых $PHP_ INSTALL_ Dir-это ваш каталог установки PHP. В некоторых средах lamp эти файлы mime_ Magic не обязательно должны существовать или быть читаемыми, и их необходимо загружать отдельно. Кроме того, в целях безопасности некоторые виртуальные хосты могут не возвращать правильный тип MIME, даже если у них есть магия mime. Иногда они возвращают пустые строки. Итак, с помощью mime_ content_ Функция type() была отменена, поэтому не рекомендуется использовать этот метод для получения типа MIME файла.

PHP FileInfo получает тип MIME файла (finfo_ открыть)

PHP официально рекомендует mime_ content_ Альтернативой функции type() является функция FileInfo. PHP 5.3.0 + уже поддерживает функцию FileInfo (поддержка FileInfo включена) по умолчанию. Информация может быть использована без каких-либо конфигураций_ Открыть() определяет, чтобы получить тип MIME файла. Версия PHP среды lamp, установленная CentOS по умолчанию, по-прежнему является php5.2.6. Если она ниже 5.3.0, появится аналогичная ошибка: фатальная ошибка PHP: вызов неопределенной функции finfo_ open() в…。 Из-за предыдущих версий PHP магия должна быть загружена в открытый класс. Функция FileInfo принадлежит расширению PECL. Тип MIME может быть обнаружен только при включенном расширении FileInfo PECL. Таким образом, есть два способа использовать FileInfo для получения типа MIME файла.

Обновите версию PHP выше 5.3.0. Официальный PHP больше не поддерживает и не обновляет этот пакет расширения FileInfo PECL, поэтому обновление-лучший способ.

Как установить расширение FileInfo PECL в CentOS Linux: установите команду FileInfo (RPM) в CentOS: Yum установите PHP PECL FileInfo. Или используйте исходный код для установки и компиляции:

cd/usr/src/вниз && wget http://pecl.php.net/get/Fileinfo-1.0.4.tgz tar zxvf Fileinfo-1.0.4.tgz cd/usr/src/down/Fileinfo-1.0.4 && phpize && ./настройка && сделать && сделать установку

Вы также можете воспользоваться популярным методом в Интернете. Linux использует команду PECL для установки FileInfo через phpize

  • Если инструкции phpize нет, вам необходимо сначала установить ее. #Если при обнаружении phpize запрашивается “команда” phpize “не найдена”, сначала следует установить phpize;
  • Загрузите и установите RPM PHP devel (PHP5 DEV) и установите phpize;
  • Перезапуск или перезагрузка службы httpd;
  • Команда PECL install FileInfo устанавливает расширение FileInfo.
  • После установки в/usr/lib/PHP/модуле появится больше файлов fileinfo.so Файл,/usr/общий доступ/файл magic.mime И магия
  • измените конфигурацию php.ini: добавьте
  • перезапуск службы httpd
  • Установка FileInfo на Windows Server аналогична, php.ini fileinfo.dll

image_ type_ To_ mime_ Type() возвращает тип MIME изображения

Если нам нужно определить, что только файлы изображений являются файлами mime, мы можем сначала использовать EXIF. Функция imagetype() получает константу типа изображения, а затем использует image_ type_ To_ mime. Функция type() преобразует константу типа изображения в тип MIME файла изображения. тот же php.ini, который нужно настроить для открытия PHP в _ mbstring.dll (требуется для Windows) и exif.dll 。 phpinfo()”–включить-exif”. Во-первых, EXIF_ Imagetype возвращает константы типа изображения, такие как тип изображения GIF,ТИП ИЗОБРАЖЕНИЯ JPEG,ТИП ИЗОБРАЖЕНИЯ Png и т.д.

PHP загружает файл, чтобы получить тип MIME

Если вы используете PHP для загрузки файлов и определения типа MIME загруженных файлов, вы можете использовать глобальные переменные$_ Files [‘uploadfile ‘] [‘тип’], тип MIME файла определяется браузером клиента.

Если вам неудобно получать тип MIME файла в системе CentOS или в других средах, последний абсолютно возможный метод-прочитать суффикс имени файла. В соответствии с именем суффикса тип MIME файла будет один к одному. Пожалуйста, обратитесь к этому комментарию в руководстве по PHP для получения подробной информации. Конечно, типы файлов mime, обнаруженные этим методом, не обязательно являются точными.

Выше приведено все содержание этой статьи, я надеюсь помочь вам в вашем исследовании, и я надеюсь, что вы сможете больше поддерживать developeppaer.