我有一个带文件输入的表单
<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属性绑定表单,因为表单来自模板并且没有名称属性。