2013-07-17 92 views
10

我正在使用ASP.NET MVC 3. 该应用程序的目标是.net 4.0。ASP.NET MVC根据文件/文件路径确定MIME类型

我试图将一个虚拟路径作为参数传递给我的控制器的操作,并返回文件,而不检查服务器上的实际物理路径并提供基本授权。不幸的是,我无法为File方法找到合适的重载来生成适当的ActionResult。我被困在确定文件的MIME类型。

我发现了一些解决方案来确定MIME类型的文件名,但没有一个令我满意。我想知道IIS在服务器上请求文件时如何确定MIME类型?是否有可能以某种方式传递给IIS用于确定MIME类型响应

+0

[从文件扩展名获取MIME类型](http://stackoverflow.com/questions/1029740/get-mime-type-from-filename-extension) – Liam

回答

26

如果您使用的是.NET 4.5有一个函数,现在需要一个文件名,并返回一个MIME类型的责任:

MimeMapping.GetMimeMapping(filename) 

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

看看函数后面这个问题:

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

它现在与文件类型列表有点过时,但它是一个开始,将尝试找到我最近的一个。

+0

是的,谢谢。我发现了这个新的酷炫功能。不幸的是,该应用程序的目标是.net 4.0。编辑我的问题... – Nas

+0

如果你想要一个副本,我也有一个从文件结尾功能的MIME类型。将不得不挖掘 – Richard

+0

我真的很感激这一点。 – Nas