Работа с MIME на PHP
«Internet Media Types» или «Медиа типы» — является стандартом RFC 6838, показывающий браузеру формат загружаемого файла. Почти все современные браузеры проверяют MIME-тип файла в качестве основного показателя определения расширения файла. MIME-типы используются при создании корпоративных сайтов и разработке сложных интернет-магазинов где нужно загружать или скачивать документы, прайсы, и другие файлы.
MIME-тип состоит из двух частей разделённых косой линией «/», в нижнем регистре и без пробелов
Также к медиа типу можно добавить дополнительный параметр для указания например кодировки: text/html; charset=utf-8
Определение MIME-типа загруженного файла
Для того чтобы узнать MIME уже загруженного файла в PHP существует функция mime_content_type().
Для получения MIME-типа изображения используется функция getimagesize():
При написании программных модулей по проверке файлов нельзя полагаться только на проверку MIME, т.к. его значение может быть не всегда правильным. Обычно нужно дополнительно проводить еще онду проверку по расширению, размеру изображения, а лучше для максимальной безопасности пересохранить файл в предполагаемом формате.
Отправка файла через PHP
В PHP, перед отправкой файлов через браузер на уровне клиента, необходимо формировать заголовок Content-Type:
Архив ZIP:
Определяем расширение файла изображения и выводим его с соответствующим заголовоком: