Лучший способ получить файлы MIME в PHP - PullRequest
3 голосов
/ 21 сентября 2011

Каков наилучший способ получить файл MIME-типа?Перед тем, как дать какие-либо ответы, вот список нескольких вещей, которые следует учесть.

  1. Невозможно полагаться на форму загрузки для точности
  2. Fileinfo была неточной в 5.3 с тестированием
  3. mime_content_type был неточным с тестом, подобным FileInfo
  4. Это выходит за рамки только типов изображений, поэтому getImageSize () не является приемлемой опцией.

Может ли это также быть apache/ сервер / груша, а не просто полагаться на функции PHP?

1 Ответ

1 голос
/ 10 октября 2011

К сожалению, нет идеального способа сделать это на любом языке программирования.

2 самый стандартный способ получить мини-тип -

  1. Определите по расширению файла ... Итак что-то .jpg - это файл JPEG, а что-то .doc - это документ Word.
  2. Определить по волшебной строке в файле ... поэтому, если первые 2 байта файла - 0xFF 0xD8, это файл jpeg. и офисный документ начинается с 0xD0 0xCF 0x11 0xE0.

У обоих способов есть свои плюсы и минусы.

Я могу загрузить исполняемый файл, но назвать его с расширением ".jpg", чтобы победить первым способом или определить тип пантомимы.

И для обоих типов мне в основном нужна большая база данных для поиска, чтобы я мог сказать, к какому mimetype относится файл.

Однако, если вас интересует только определение mimetype для нескольких типов файлов. (Может быть, просто jpg, png, gif и т. Д.), Тогда лучшим способом (imho) будет способ номер 2. Просто сохраните базу данных или массив всех магических строк и протестируйте файл на предмет этого.

Волшебные струны легко получить, просто Google.

...