0

我正在开发 MVC 5 应用程序。我需要上传多个文件。

我所知道的是 HttpPostedFile 和 HttpPostedFileBase 类可以获取一个文件。但我的条件是我需要一次上传多个文件。

我的问题是,

1) 由于不支持使用 ajax 上传多个文件,我是否需要编写值提供程序来使我的操作接受多个文件?

2)如果我实现自定义值提供程序,我应该在操作方法中使用什么参数(应该是IEnumerable<HttpPostedFileBase> f)?因为我这样做了,我得到了null

更新

这是我从 View 调用的 Ajax

    var files = e.target.files;
        if (window.FormData !== undefined) {
            var fd = new FormData();
            for (x = 0; x < files.length; x++) {
                fd.append("file" + x, files[x]);
            }
           // fd.append("fawad", "ali");
            $.ajax({
                type: "POST",
                url: "/FileOp/FileUpload",
                contentType: false,
                processData: false,
                data: fd,
                sucess: function (result) {
                  //  alert();
                },
                error: function (xhr, status, p3, p4) {
                    alert(xhr.responseText);
                }
           });

这是我的操作方法(HttpPost)

  [HttpPost]

  public object FileUpload(IEnumerable<HttpPostedFileBase> file)

谢谢

4

1 回答 1

1

您添加的名为file0,file1等的文件file2不会绑定到名为file.

将脚本中的代码更改为

for (x = 0; x < files.length; x++) {
    fd.append("file", files[x]); // modify
}

或者,您可以使用

fd.append("[" + x + "].file", files[x]);
于 2016-08-01T09:27:12.417 回答