Fileinfo не использует расширение файла для определения типа mime, но ( цитирует ) :
Функции в этом модуле попытаться
угадай тип контента и кодировку
файла ищет наверняка
Волшебные байтовые последовательности в определенных
позиции в файле.
Идея состоит в том, что имя файла и его расширение предоставляются пользователями (особенно в таком случае, как ваш, когда файлы загружаются пользователями) , и, как таковые менее "уверены", чем содержимое самого файла.
Может быть, решение может заключаться в том, чтобы не проверять весь mime-тип, возвращаемый fileinfo, а использовать только первую его часть - по крайней мере, в некоторых случаях?
Например, может быть, вы могли бы принять все типы mimetype из семейств text/*
и image/*
и отказаться от всех, которые выглядят как application/*
, кроме application/pdf
?
(просто пример - но вы видите смысл)