如何在MVC3中提交文件列表(上传)

时间:2012-09-05 10:59:58

标签: asp.net-mvc-3 razor

我正在撰写网站的评论部分。在这里,对于一个特定注释,用户可以附加多个文件,并且在提交表单时(我使用@Html.BeginForm),应该提交HttpPostedFileBase列表,然后在上传方法的内部完成。在这种情况下,我有点迷失。这样做的正确方法是什么?

PS:这些文件很小。

谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个例子

public string Upload(image image, HttpPostedFileBase filedata)
        {

              var fileName = Path.GetFileName(filedata.FileName);
              var path = Path.Combine(Server.MapPath("~/uploads/"), fileName);
              var extension = Path.GetExtension(path);
              filedata.SaveAs(path);

              if (ModelState.IsValid)
              {

                      image.image_name = fileName;
                      image.image_description = extension;


                      db.image.AddObject(image);
                      db.SaveChanges();
                  }



              }
            return "ok";
        }

答案 1 :(得分:0)

如此简单,如果要上传多个文件。例如,如果有两个输入,其中type是可以传递的“file”。

@using (Html.BeginForm("Method", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
   <input type='file' name='filename' id='fileid' />
   <input type='file' name='filename' id='fileid' />

}

这可以很容易地在post方法中咳嗽

public ActionResult Upload(IEnumerable<HttpPostedFileBase> filename)
{
    //uploading to the server is done here.
}