Asp.net MVC 5 Ajax 多文件上传可能需要值提供程序,有建议吗?
Asp.net MVC 5 Ajax Multi File Upload may need value provider, suggestions?
我正在处理 MVC 5 应用程序。我需要上传多个文件。
我知道的是HttpPostedFile 和HttpPostedFileBase 类 可以得到一个文件。但是我的条件是需要同时上传多个文件
我的问题是,
1) 由于不支持使用 ajax 上传多个文件,我是否需要编写值提供程序使我的操作接受多个文件?
2) 如果我实现自定义值提供程序,我应该在操作方法中使用什么参数(应该是 IEnumerable<HttpPostedFileBase> f
)?因为我这样做了,我得到了 null
.
更新
这是我的 Ajax 来自 View
的电话
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)
谢谢
您添加的名为 file0
、file1
、file2
等的文件不会绑定到名为 file
.
的参数
将脚本中的代码更改为
for (x = 0; x < files.length; x++) {
fd.append("file", files[x]); // modify
}
或者,您可以使用
fd.append("[" + x + "].file", files[x]);
我正在处理 MVC 5 应用程序。我需要上传多个文件。
我知道的是HttpPostedFile 和HttpPostedFileBase 类 可以得到一个文件。但是我的条件是需要同时上传多个文件
我的问题是,
1) 由于不支持使用 ajax 上传多个文件,我是否需要编写值提供程序使我的操作接受多个文件?
2) 如果我实现自定义值提供程序,我应该在操作方法中使用什么参数(应该是 IEnumerable<HttpPostedFileBase> f
)?因为我这样做了,我得到了 null
.
更新
这是我的 Ajax 来自 View
的电话 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)
谢谢
您添加的名为 file0
、file1
、file2
等的文件不会绑定到名为 file
.
将脚本中的代码更改为
for (x = 0; x < files.length; x++) {
fd.append("file", files[x]); // modify
}
或者,您可以使用
fd.append("[" + x + "].file", files[x]);