Я хочу получить MIME Content-Type из заданного расширения (желательно без доступа к физическому файлу). Я видел некоторые вопросы об этом, и методы, описанные для выполнения этого, могут быть возобновлены в:
- Используйте информацию о реестре.
- Используйте urlmon.dll FindMimeFromData.
- Используйте информацию IIS.
- Сверните свою собственную функцию MIME mapping. На основе эта таблица, например.
Я использую no.1 некоторое время, но я понял, что информация, предоставленная реестром, несовместима и зависит от программного обеспечения, установленного на машине. Некоторые расширения, такие как .zip, не используют для указания типа содержимого.
Решение №2 заставляет меня иметь файл на диске, чтобы читать первые байты, что является чем-то медленным, но может иметь хорошие результаты.
Третий метод основан на службах каталогов и всего этого, что мне не нравится, потому что мне нужно добавить ссылки COM, и я не уверен, что он совместим между IIS6 и IIS7. Кроме того, я не знаю производительность этого метода.
Наконец, я не хотел использовать свою собственную таблицу, но в конце кажется лучшим вариантом, если мне нужна достойная производительность и согласованность результатов между платформами (даже Mono).
Как вы думаете, лучше ли лучше, чем использовать мою собственную таблицу или один из других описанных методов? Каков ваш опыт?