Asp.net mvc 3 MVC3上传文件更多信息

Asp.net mvc 3 MVC3上传文件更多信息,asp.net-mvc-3,file-upload,Asp.net Mvc 3,File Upload,我可以使用HttpPostedFileBase在MVC3(C#)中上传文件,但我想知道更多关于上传文件的信息,如 如何获得 文件大小 如何获得 文件类型 如何按文件类型筛选文件上载 请帮帮我 文件大小 使用file.ContentLength文件所在的位置HttpPostedFileBase变量 文件类型 您可以使用文件名的扩展名,但显然不是100%可靠。如果你想要一个防弹的解决方案,你必须使用启发式。例如,查看上传文件的内容,尝试猜测其类型。例如,要测试已知的图像格式,可以使用。我

我可以使用HttpPostedFileBase在MVC3(C#)中上传文件,但我想知道更多关于上传文件的信息,如

  • 如何获得
文件大小

  • 如何获得
文件类型

  • 如何按文件类型筛选文件上载
请帮帮我

文件大小

使用
file.ContentLength
文件所在的位置
HttpPostedFileBase
变量

文件类型

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

如何按文件类型筛选文件上载

HTML5支持指定内容类型:

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

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

在IE7中,为了过滤文件输入框的内容,您完全无法使用本机HTML和javascript

文件大小

使用
file.ContentLength
文件所在的位置
HttpPostedFileBase
变量

文件类型

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

如何按文件类型筛选文件上载

HTML5支持指定内容类型:

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

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


为了过滤文件输入框的内容,在一个比方说IE7中,您完全无法使用本机HTML和javascript。

您能解释一下关于文件类型的启发式方法吗?根据您需要处理的文件类型,您必须采用各种技术。例如,对于某些图像类型,您可以查看前几个字节来识别该类型。我还更新了我的答案,为您指出了我写的另一个关于使用自定义验证属性对已知图像格式进行验证的示例:您能否解释关于文件类型的启发式方法?根据您需要处理的文件类型,您将不得不采用各种技术。例如,对于某些图像类型,您可以查看前几个字节来识别该类型。我还更新了我的答案,让您看到我写的另一个例子,关于使用自定义验证属性对已知图像格式进行验证: