图像上传和图像.ContentLenght> 0

时间:2012-08-07 15:30:33

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

我有对象街有一些照片。我正在尝试在与创建新街道对象相同的表单上实现上传。因此,使用字段

对mvc Web表单进行映像
  • StreetName
  • StreetNumber
  • 照片1
  • 照片2
  • 照片3

现在,在create.cshtml页面上,我的表单包含StreetNameStreetNumber字段,

<input type="file" name="postedImages" />
<input type="file" name="postedImages" />
<input type="file" name="postedImages" />

在提交此表单时,我将这些数据发送到StreetController以进行进一步处理

 [HttpPost]
 public ActionResult Create(StreetViewModel newData, IEnumerable<HttpPostedFileBase> postedImages)
 {
    //create object and save stretname and streetnumber
    //process posted images
    foreach(var image in postedImages)
    {
        //this is where error occured if I post only one or two images from my view
       if(image.ContentLength >0)
       {
          //process and save images
       }
    }

 }

如果我发布网页上提供的确切数量的图像,你可以阅读我评论的内容,一切都很好,但是如果我发送了1或2个图像错误发生了。

如何解决这个问题?感谢

3 个答案:

答案 0 :(得分:2)

在访问null proeprty之前添加ContentLength检查

if((image!=null) && (image.ContentLength >0))
{
      //process and save images
}

答案 1 :(得分:2)

foreach(var image in postedImages.Where(pi => pi != null))

答案 2 :(得分:2)

你可以这样做:

If(image != null)
    if(image.ContentLength > 0)
        {
           //code
        }

在获取属性之前检查它是否为空,这就是错误的原因。