Xpoint
   [напомнить пароль]

Валидация загруженного файла по content-type

Метки: content-type
2005-09-29 17:55:18 [обр] Иван Шумков(0/77)[досье]

Хочу проверять валидность загруженного файла по content-type ($_FILES[$field_name]['type']), но меня предупредили, что разные клиенты отдают разные content-type для одних и тех-же файлов. Хотелось бы описать синонимические связи.

Возможно это уже кто-то делал до меня? Или есть списки content-type которые отдают клиенты?

спустя 8 минут [обр] Алексей В. Иванов(9/2861)[досье]
М Перенесено из форума "Программирование::PHP"
спустя 4 минуты [обр] Владимир Палант(49/4445)[досье]
Как минимум IE должен брать Content-Type из реестра. К примеру, в HKEY_CLASSES_ROOT\.gif есть строка Content Type со значением image/gif. Подозреваю, что и другие браузеры под Windows используют эти данные.
спустя 3 минуты [обр] Владимир Палант(49/4445)[досье]
Проверил и обнаружил, что все браузеры это значение, как ни странно, игнорируют. IE и Opera всегда шлют image/gif, а Gecko предпочитает application/octet-stream.
спустя 1 час 50 минут [обр] Иван Шумков(0/77)[досье]
Хм. Видимо так валидировать не получится. Как же тогда? Возможно на стороне сервера однозначно определить content-type файла?
спустя 1 час 13 минут [обр] Закиров Руслан(0/341)[досье]
Если сервер апач, то с ним идут файлы описания типов для модулей mod_mime и mod_mime_magic. Можно использовать их.
Например для perl есть интерфейс к обоим вариантам:
http://search.cpan.org/~pardus/File-MimeInfo-0.11/MimeInfo.pm
http://search.cpan.org/~pardus/File-MimeInfo-0.11/MimeInfo/Magic.pm
спустя 1 час 2 минуты [обр] Иван Шумков(0/77)[досье]
Закиров Руслан[досье]
Спасибо, проще всего mime_content_type.
спустя 20 минут [обр] Алексей В. Иванов(9/2861)[досье]

Помните, что все эти функции (что апача, что пхп'шные, ...) определяют content-type исключительно по расширению. Большего никто Вам не сможет гарантировать.

Возможно на стороне сервера однозначно определить content-type файла?

Нет. Особенно, если формат текстовый

спустя 32 минуты [обр] Алексей В. Иванов(9/2861)[досье]
Наврал я бесстыже про расширения. Извиняюсь. Как оказалось, большинство функций используют magic.mime-файл, где описаны байтовые заголовки для определения наиболее популярных форматов файлов (wav, doc, zip)
Powered by POEM™ Engine Copyright © 2002-2005