2013-07-17 6 views
10

Sto usando ASP.NET MVC 3. L'applicazione ha come target .net 4.0.ASP.NET MVC Determina il tipo mime per file/percorso file

Stavo cercando di passare un percorso virtuale come argomento all'azione del mio controllore e di restituire il file senza rivedere il percorso fisico effettivo sul server e fornire l'Autorizzazione di base. Sfortunatamente non sono riuscito a trovare un overload adeguato per il metodo File per generare ActionResult appropriato. Sono bloccato a determinare il tipo MIME per il file.

Ho trovato un paio di soluzioni per determinare i tipi di mime in base al nome del file, ma nessuno di loro mi soddisfa. Mi chiedevo in che modo IIS determina il tipo mime quando stai richiedendo un file sul server? E 'possibile passare in qualche modo a IIS la responsabilità di determinare il tipo MIME per la risposta

+0

possibile duplicato di [Ottieni il tipo MIME dall'estensione del nome file] (http://stackoverflow.com/questions/1029740/get-mime-type-from-filename-extension) – Liam

risposta

26

Se si utilizza .NET 4.5 v'è una funzione che prende ora il nome del file e restituisce un mimetype:

MimeMapping.GetMimeMapping(filename) 

http://msdn.microsoft.com/en-us/library/system.web.mimemapping.getmimemapping.aspx

Date un'occhiata alla funzione più avanti in questa domanda:

How to use Generic Handlers (ASHX) in ASP.NET MVC?

È un po 'obsoleto con l'elenco dei tipi di file ora, ma è un inizio, cercherà di trovare il mio più recente.

+0

Sì, grazie. Ho trovato questa nuova fantastica funzionalità. Sfortunatamente l'applicazione ha come target .net 4.0. Modifica la mia domanda ... – Nas

+0

Ho anche un tipo mime dalla funzione di fine del file se vuoi una copia. dovrò scavare – Richard

+0

Lo apprezzerei molto. – Nas