Domanda

Ho un'azione mvc asp.net che restituisce un risultato di file. Dietro le quinte, è solo la restituzione di un file da una directory. FilePathResult richiede un tipo di contenuto, ma non so che.

Qual è il modo corretto per restituire un risultato file se ho solo il percorso del file a disposizione?

È stato utile?

Soluzione

Prendere l'estensione del file, e cercarlo nel Registro di sistema. La voce per esso avrà un "Tipo di contenuto" la proprietà.

Ecco un esempio completo di restituzione di un FilePathResult da un'azione di controllo:

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 );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top