Comment retourner un résultat de fichier quand je ne connais pas le type de contenu

StackOverflow https://stackoverflow.com/questions/2542828

  •  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?

Était-ce utile?

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
scroll top