ASP.NET MVC Определение типа mime по пути файла/файла

Я использую ASP.NET MVC 3. Приложение нацелено на .net 4.0.

Я пытался передать виртуальный путь в качестве аргумента в действие моего контроллера и вернуть файл, не просматривая фактический физический путь на сервере и предоставляя базовую авторизацию. К сожалению, мне не удалось найти подходящую перегрузку для метода File для создания соответствующего ActionResult. Я застрял в определении типа mime для файла.

Я нашел пару решений для определения типов mime по имени файла, но ни один из них не удовлетворяет меня. Мне было интересно, как IIS определяет тип mime, когда вы запрашиваете файл на сервере? Возможно ли каким-то образом передать IIS ответственность за определение типа mime для ответа

Ответ 1

Если вы используете .net 4.5, теперь есть функция, которая принимает имя файла и возвращает тип mimetype:

MimeMapping.GetMimeMapping(filename)

http://msdn.microsoft.com/en-us/library/system.web.mimemapping.getmimemapping.aspx

Посмотрите на функцию позже в этом вопросе:

Как использовать общие обработчики (ASHX) в ASP.NET MVC?

Это немного устаревший со списком типов файлов сейчас, но он начинается, попытается найти более недавний.