私はMVC 5アプリケーションで作業しています。そして私は複数のファイルをアップロードする必要があります。Asp.net MVC 5 Ajaxマルチファイルアップロードは、バリュープロバイダ、提案が必要な場合がありますか?
私が知っているものは、HttpPostedFileクラスとHttpPostedFileBaseクラスは1つのファイルを取得できます。しかし、私の条件は、一度に複数のファイルをアップロードする必要があることです。 AJAXを使用して複数ファイルのアップロードがサポートされていないので
私の質問には)、
1ですが、私は複数のファイルを受け入れるように自分の行動をする値プロバイダを記述する必要がありますか?
2)カスタム値プロバイダを実装する場合、アクションメソッドのパラメータには何を使用する必要がありますか(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)
を使用することができます。あなたのビューモデル(または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'、2番目は' file2'などです。 – Alex
@StephenMuecke here AJAXの$アヤックス({ タイプ: "POST"、 URL: "/ FileOp /するFileUpload"、 のcontentType:偽、 PROCESSDATA:偽、 データ:FD、 成功事例の:機能(結果){ // alert(); }、 エラー:function(xhr、status、p3、p4){ alert(xhr.responseText); } }); – Alex