Как вернуть результат файла, когда я не знаю тип содержимого - PullRequest
7 голосов
/ 30 марта 2010

У меня есть действие asp.net mvc, которое возвращает результат файла. За кулисами просто возвращается файл из каталога. FilePathResult требует тип содержимого, но я этого не знаю.

Как правильно вернуть результат файла, если у меня есть только путь к файлу?

1 Ответ

11 голосов
/ 30 марта 2010

Возьмите расширение файла и найдите его в реестре. Запись для него будет иметь свойство «Тип содержимого».

Вот полный пример возврата FilePathResult из действия контроллера:

string filePysicalPath, fileName; //these need to be set to your values.

var reg = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey( Path.GetExtension( filename ).ToLower() );
string contentType = "application/unknown";

if ( reg != null )
{
    string registryContentType = reg.GetValue( "Content Type" ) as string;

    if ( !String.IsNullOrWhiteSpace( registryContentType ) )
    {
        contentType = registryContentType;
    }
}

return File( filePysicalPath, contentType, filename );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...