Asp.net mvc 3 如何在MVC3中提交文件列表(待上传)
我正在一个网站的评论部分工作。在这里,对于一个特定的注释,用户可以附加几个文件,当表单提交时(我使用的是Asp.net mvc 3 如何在MVC3中提交文件列表(待上传),asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我正在一个网站的评论部分工作。在这里,对于一个特定的注释,用户可以附加几个文件,当表单提交时(我使用的是@Html.BeginForm),应该提交HttpPostedFileBase列表,然后在方法内部完成上传。我有点迷失在这个场景中。正确的做法应该是什么 附:这些文件很小 谢谢大家! 下面是一个例子 public string Upload(image image, HttpPostedFileBase filedata) { var fileNa
@Html.BeginForm
),应该提交HttpPostedFileBase
列表,然后在方法内部完成上传。我有点迷失在这个场景中。正确的做法应该是什么
附:这些文件很小
谢谢大家! 下面是一个例子
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";
}
就这么简单,如果要上传的文件不止一个。例如,如果有两个输入,其中类型是可以传递的“文件”
@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' />
}
@使用(Html.BeginForm(“方法”,“控制器”,FormMethod.Post,新的{enctype=“multipart/formdata”}))
{
}
在post方法中,这很容易咳嗽
public ActionResult Upload(IEnumerable<HttpPostedFileBase> filename)
{
//uploading to the server is done here.
}
公共操作结果上传(IEnumerable文件名)
{
//上传到服务器是在这里完成的。
}
我的问题不在于实用程序,而在于传递
HttpPostedFileBase
的列表。到目前为止,我发现,我们可以得到HttpPostedFileBase
的IEnumerable
列表。我当前的问题是收集视图中的HttpPostedFileBase
列表。