c# - MVC3 如何检查 HttpPostedFileBase 是否是图像

标签 c# asp.net-mvc-3 file-upload httppostedfilebase

我有一个这样的 Controller :

public ActionResult Upload (int id, HttpPostedFileBase uploadFile)
{
....
}

如何确保 uploadFile 是图像(jpg、png 等)

我试过

using (var bitmapImage = new Bitmap (uploadFile.InputStream)) {..}

如果无法创建 bitmapImage,则会抛出 ArgumentException。

是否有更好的方法,例如查看 uploadFile.FileName?

最佳答案

您可以为此检查 HttpPostedFileBase 对象的属性

  • 内容类型
  • 文件名(检查您已经知道的文件扩展名:))

enter image description here

还有一个小方法,我已经准备好了,你可以使用/扩展...

private bool IsImage(HttpPostedFileBase file)
{
    if (file.ContentType.Contains("image"))
    {
        return true; 
    }

    string[] formats = new string[] { ".jpg", ".png", ".gif", ".jpeg" }; // add more if u like...

    // linq from Henrik Stenbæk
    return formats.Any(item => file.FileName.EndsWith(item, StringComparison.OrdinalIgnoreCase));
}

我也写过一篇关于这个的文章here

关于c# - MVC3 如何检查 HttpPostedFileBase 是否是图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12120135/

相关文章:

c# - Xpath 和通配符

c# - 在 ASP.NET MVC (3) 中使用数据注释验证时是否可以生成属性的计算值?

c# - 构建 View 模型的代码应该放在哪里?

jquery - 如何在下拉列表上应用 onblur 事件?

Javascript - 如何将图像数据(字节数组)添加到多部分 POST 请求

php - 在自己的插件中为 Wordpress Media Uploader 自定义上传目录

c# - 性能测试的精确时间测量

c# - 为什么我的 HttpApplication 实例变量为空?

javascript - 函数调用后停止网页跳转回顶部

ruby-on-rails - 如何在 AJAX 中将 RecordRTC blob 文件上传到 Rails 回形针