Существует множество библиотек и утилит для попытки угадать тип MIME файла по содержимому, а не просто использовать расширения имени файла. В то время как некоторые библиотеки просто принимают дескриптор открытого файла, другие ожидают передачи фактических данных.
Сколько байтов требуется при передаче данных в библиотеку для получения точного MIME-типа?
В качестве альтернативы, в какой момент вы передаете дополнительную информацию без повышения надежности?