MVC中的图片验证

时间:2011-02-03 15:02:36

标签: c# asp.net asp.net-mvc asp.net-mvc-2

目标:
评估图片的格式,宽度和高度,然后将其保存在我的程序中。

问题:
不知道如何使用HttpPostedFileBase file然后将其发送到Image newImage = Image.FromFile(xxxx);而不将图片保存在我的程序中。

  1. 验证
  2. 将图片保存在我的“App_Data”
  3. [AcceptVerbs(HttpVerbs.Post)]  
    public ActionResult Add(HttpPostedFileBase file)  
    {
        if (file.ContentLength > 0)
        {
            Image newImage = Image.FromFile(xxxx);      
        }
    
        return Index();  
     } 
    

2 个答案:

答案 0 :(得分:12)

您可以像以下代码段那样执行此操作。请注意System.Drawing命名空间引用,您需要使用Image.FromStream()方法。

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(HttpPostedFileBase httpPostedFileBase)
{
    using (System.Drawing.Image image = System.Drawing.Image.FromStream(httpPostedFileBase.InputStream, true, true))
    {
        if (image.Width == 100 && image.Height == 100)
        {
            var file = @"D:\test.jpg";
            image.Save(file);
        }
    }

    return View();
}

答案 1 :(得分:2)

HttpPostedFile有一个stream属性,即上传的数据。与Image.FromStream方法一样使用它来加载图像。

我建议你在这里阅读有关HttpPostedFile的帮助:

http://msdn.microsoft.com/en-us/library/SYSTEM.WEB.HTTPPOSTEDFILE(v=vs.100,d=lightweight).aspx

西蒙