Я считаю, что наиболее вероятно тип контента устанавливается браузером. Независимо от этого, разные браузеры могут устанавливать разные типы контента для разных файлов - и они могут использовать общий тип контента, такой как «application / octet-stream» для любого двоичного файла (pdf, zip, doc, xls). Возможно, что один браузер сообщит docx как «application / vnd.openxmlformats», а другой как «application / x-zip-compress», а еще один - как «application / octet-stream». И все же все они верны, поскольку docx - это двоичные файлы и сжатые (zip) файлы.
Короче говоря, я предлагаю вам не полагаться на тип контента, отправляемый клиентом (помимо определенной степени, такой как определение его текста, HTML или двоичный файл и т. Д.), А вместо этого использовать логику анализа на стороне сервера для определения типа содержимого файла. , Простой анализ может быть основан на расширении файла, в то время как более надежная реализация будет грабить фактическое содержимое файла, где обычно первые несколько байтов файла указывают тип файла.