通过附加到FormData,从<input type =“file”multiple =“”/>上传文件

时间:2016-01-27 10:09:38

标签: javascript asp.net-mvc-4 file-upload model-binding

我有一个带文件输入的表单

<input type="file" id="FileInput" multiple />

我尝试将文件上传到服务器。像这样的服务器端代码:

[HttpPost]
public ActionResult Index(HttpPostedFileBase[] files) {
    ... process ...
}

对于发送帖子请求,我使用$ .ajax

    var formData = new FormData($('#FormId')[
    formData.append("files", $('#FileInput')[0].files);
    $.ajax({
        url: "/default/index",
        type: "POST",
        data: formData,
        contentType: false,
        processData: false,
        success: function() {
            alert("success");
        }
    });

并且它不起作用。 但是如果我将name="files"属性添加到输入(对于本机绑定)并删除指令formData.append("files", $('#FileInput')[0].files);代码可以正常工作。

那么这些方式和我如何通过将数据附加到FormData来传递文件之间有什么区别?

注意:在我的工作中我无法通过name属性绑定表单,因为表单来自模板并且没有名称属性。

0 个答案:

没有答案