MVC3上传文件的详细信息

问题描述:

我可以用HttpPostedFileBase,但我想知道更多关于上传文件像在MVC3(C#)上传文件...MVC3上传文件的详细信息

  • 如何获得

文件大小

  • 如何获得

文件类型

  • 如何我可以用文件类型过滤文件上传

请帮我

文件大小

使用file.ContentLength其中文件是你HttpPostedFileBase变量。

文件类型

你可以使用文件名的扩展名,但显然不是100%可靠。如果你想要一个防弹解决方案,你将不得不使用启发式。例如查看上传文件的内容以尝试猜测其类型。例如,要测试已知的图像格式,您可以使用following technique。我还写了another post关于使用自定义验证属性对已知图像格式进行验证。

如何我可以用文件类型过滤文件上传

HTML5支持指定内容类型:

<input type="file" name="file" accept="image/*" /> 

如果你的浏览器不支持HTML5,你将不得不使用一些其他诸如Flash之类的技术。您可以使用现有的插件,如UploadifyPlupload,它们通过测试客户端浏览器的功能并逐步回退来提供此功能。

简单地说,你绝对没有办法用IE7中的原生HTML和JavaScript来过滤文件输入框的内容。

+0

你能解释关于文件类型的启发式吗? – zxprince 2012-07-09 10:19:31

+0

根据您需要处理的文件类型,您将不得不采用各种技术。例如,对于某些图像类型,您可以查看前几个字节来识别类型。我也更新了我的答案,以指向您使用自定义验证属性对已知图像格式进行验证的另一个示例:http://stackoverflow.com/a/6388927/29407 – 2012-07-09 11:17:55