我正在開發MVC 5應用程序。我需要上傳多個文件。Asp.net MVC 5 Ajax多文件上傳可能需要價值提供者,建議?
我知道的是HttpPostedFile和HttpPostedFileBase類可以獲得一個文件。但我的情況是我需要一次上傳多個文件。
我的問題是,
1)由於使用AJAX多文件上傳的支持,我需要編寫新價值,使我的行動來接受多個文件? 2)如果我實現自定義值提供程序,我應該在action方法中使用哪個參數(應該是IEnumerable<HttpPostedFileBase> f
)?因爲我這樣做了,並且我得到了null
。
更新
這裏是查看
我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)
感謝
你不需要自定義值提供商。你只需要你的視圖模型中的一個屬性(或者你的POST方法中的一個參數,它是'IEnumerable XXX',其中'XXX'是你的文件輸入的名稱(並且我假設你正在使用'FormData' [這個答案](http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-to-formdata-and-obtain-it-in-mvc/29293681#29293681)到上傳文件使用ajax –
@StephenMuecke「您的文件輸入名稱」不可能,可以有x個文件,所以第一個文件是'file1',第二個是'file2'等等 – Alex
@StephenMuecke在這裏我的控制器調用AJAX $就({ 類型: 「POST」, URL: 「/ FileOp /文件上傳」, 的contentType:假, 過程數據:假, 數據:FD, sucess:功能(結果){ // alert(); }, error:function(xhr,status,p3,p4){alert(xhr.responseText); } }); – Alex