2013-07-17 4 views
10

Ich verwende ASP.NET MVC 3. Die Anwendung zielt auf. NET 4.0.ASP.NET MVC Bestimmen Mime-Typ von Datei/Dateipfad

Ich habe versucht, einen virtuellen Pfad als Argument für die Aktion meines Controllers zu übergeben und die Datei zurückzugeben, ohne den tatsächlichen physischen Pfad auf dem Server zu überprüfen und grundlegende Autorisierung bereitzustellen. Leider konnte ich keine geeignete Überladung für die File-Methode finden, um das entsprechende ActionResult zu generieren. Ich bin bei der Bestimmung Mime-Typ für die Datei fest.

Ich habe ein paar Lösungen zur Bestimmung von Mime-Typen nach Dateinamen gefunden, aber keine von ihnen befriedigt mich. Ich frage mich, wie bestimmt IIS den MIME-Typ, wenn Sie eine Datei auf dem Server anfordern? Ist es möglich, dass die Antwort, die Verantwortung IIS für die Bestimmung der Mime-Typ irgendwie passieren

+0

mögliche Duplikate von [Get MIME-Typ von Dateinamenerweiterung] (http://stackoverflow.com/questions/1029740/get-mime-type-from-filename-extension) – Liam

Antwort

26

Wenn Sie .net verwenden 4.5 gibt es eine Funktion jetzt, dass Sie einen Dateinamen nimmt und ein MIME-Typ:

MimeMapping.GetMimeMapping(filename) 

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

einen Blick auf die Funktion später in dieser Frage nehmen:

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

Es ist ein wenig veraltet mit der Liste der Dateitypen jetzt, aber es ist ein Anfang, wird versuchen, meine neuere zu finden.

+0

Ja danke. Ich habe dieses neue coole Feature gefunden. Leider zielt die Anwendung auf .net 4.0 ab. Bearbeiten meiner Frage ... – Nas

+0

Ich habe auch einen Mime-Typ von Dateiendung Funktion, wenn Sie eine Kopie möchten. muss graben – Richard

+0

Ich würde das wirklich zu schätzen wissen. – Nas