Как вернуть результат файла, если я не знаю тип содержимого
-
23-09-2019 - |
Вопрос
У меня есть действие asp.net mvc, которое возвращает результат файла.За кулисами это просто возврат файла из каталога.Для FilePathResult требуется тип содержимого, но я этого не знаю.
Как правильно вернуть результат файла, если у меня есть только путь к файлу?
Решение
Возьмите расширение файла и найдите его в реестре.Запись для него будет иметь свойство "Тип содержимого".
Вот полный пример возврата 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 );
Не связан с StackOverflow