【问题标题】:MVC3 uploaded file more informationMVC3 上传文件更多信息
【发布时间】:2012-07-08 17:34:26
【问题描述】:

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

  • 如何获得

文件大小

  • 如何获得

文件类型

  • 如何按文件类型过滤文件上传

请帮帮我

【问题讨论】:

    标签: asp.net-mvc-3 file-upload


    【解决方案1】:

    文件大小

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

    文件类型

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

    如何按文件类型过滤文件上传

    HTML5 支持指定内容类型:

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

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

    在 IE7 中,您绝对无法使用原生 HTML 和 javascript 来过滤文件输入框的内容。

    【讨论】:

    • 你能解释一下关于文件类型的启发式方法吗?
    • 根据您需要处理的文件类型,您必须采用各种技术。例如,对于某些图像类型,您可以查看前几个字节来识别类型。我还更新了我的答案,以将您指向另一个我写的关于使用自定义验证属性验证已知图像格式的示例:stackoverflow.com/a/6388927/29407
    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    相关资源
    最近更新 更多