Comment retourner un résultat de fichier quand je ne connais pas le type de contenu
-
23-09-2019 - |
Question
J'ai une action mvc asp.net qui retourne un résultat de fichier. Dans les coulisses, il est juste de retourner un fichier à partir d'un répertoire. FilePathResult nécessite un type de contenu, mais je ne sais pas.
Quelle est la bonne façon de retourner un fichier résultat si je n'ai que le chemin vers le fichier disponible?
La solution
Prenez l'extension de fichier, et le chercher dans le registre. L'entrée pour elle aura une propriété « type de contenu ».
Voici un exemple complet de retour d'un FilePathResult d'une action du contrôleur:
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 );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow