【发布时间】:2012-07-08 17:34:26
【问题描述】:
我可以使用 HttpPostedFileBase 在 MVC3 (C#) 中上传文件,但我想了解更多关于上传文件的信息...
- 如何获得
文件大小
- 如何获得
文件类型
- 如何按文件类型过滤文件上传
请帮帮我
【问题讨论】:
我可以使用 HttpPostedFileBase 在 MVC3 (C#) 中上传文件,但我想了解更多关于上传文件的信息...
文件大小
文件类型
请帮帮我
【问题讨论】:
文件大小
使用file.ContentLength,其中文件是你HttpPostedFileBase 变量。
文件类型
您可以使用文件名的扩展名,但显然不是 100% 可靠。如果您想要一个防弹解决方案,您将不得不使用启发式方法。例如查看上传文件的内容以尝试猜测其类型。例如,要测试已知的图像格式,您可以使用following technique。我还写了 another post 关于使用自定义验证属性验证已知图像格式的文章。
如何按文件类型过滤文件上传
HTML5 支持指定内容类型:
<input type="file" name="file" accept="image/*" />
如果您的浏览器不支持 HTML5,您将不得不使用一些其他技术,例如 Flash 或其他东西。您可以使用现有的插件,例如 Uploadify 或 Plupload,它们通过测试客户端浏览器的功能并逐步回退来提供此功能。
在 IE7 中,您绝对无法使用原生 HTML 和 javascript 来过滤文件输入框的内容。
【讨论】: