asp.net mvc中的多文件上传

时间:2016-03-24 21:37:42

标签: c# asp.net-mvc

我需要从同一个表单中的单个文件上传器和多个文件上传器中获取文件。并且还需要知道这些文件来自哪个输入字段。 从Request.Files我可以获得所有文件,但不知道这些文件来自哪个字段。

我有一张表格。

<form> 
    <input type="file" name="file1">
    <input type="file" name="files" multiple="true"> 
</form>`

2 个答案:

答案 0 :(得分:6)

直接使用模型而不是Request.Files。根据您的观点,您可以执行以下操作:

public class UploadForm
{
    public HttpPostedFileBase file1 {get;set;}

    public IEnumerable<HttpPostedFileBase> files {get;set;}
}

然后在你的行动中:

public ActionResult Uploade(UploadForm form)
{
    if(form.file1 != null)
    {
        //handle file
    }

    foreach(var file in form.files)
    {
        if(file != null)
        {
            //handle file
        }
    }
    ...
}

答案 1 :(得分:3)

如果这两个上传控件具有不同的名称属性,您可以让模型绑定器完成工作。您只需将控制器操作中的参数命名为与上传控件的名称相同。

public ActionResult Upload(HttpPostedFileBase file1, IEnumerable<HttpPostedFileBase> files)
{
    ...
}