上传上传有ID的多个文件

时间:2013-06-07 13:53:16

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

我有一个页面,其中有多个文件上传输入,其ID和名称与上传的文档类型相关,如下所示:

<input type="file" name="postedFile_37" id="37">
<input type="file" name="postedFile_23" id="23">

在我的控制器中,如何识别上传的名称或ID,以便将文档分配给数据库中上传的类型?

我可以看到,例如,如果我做

Request.Files[i]

我可以看到索引的名称,但我无法获得保存的值。如何从发布的文件上传中获取名称或ID?

2 个答案:

答案 0 :(得分:2)

尝试在每个文件旁边添加隐藏字段,这样就有两个数组 - 第一个是文件本身,第二个是id。

<input type="hidden" name="fileId" value="37" />
<input type="file" name="file" />
<input type="hidden" name="fileId" value="38" />
<input type="file" name="file" />

public ActionResult Test (string[] fileId, List<HttpPostedFileBase> file)
{
    int i = 0;
    foreach (var f in file)
    {
        var id = fileId[i]; // this is your file id, f is file
        i++;
    }
}

答案 1 :(得分:0)

如果使用ASP.NET FileUpload控件而不是纯HTML控件,则可以在PostBack中单独(通过ID)访问它们。