blueimp ファイル アップロードを MVC アプリケーションに追加しようとしていますが、投稿アクションでファイルを受信する際に問題が発生しています (複数ファイルのアップロード機能を使用しようとしています)。
私の見解では、次のコードがあります。
<form id="file_upload" enctype="multipart/form-data" action="Home/SaveFile" method="post">
<input type="file" name="file" multiple="true"/>
<button>Upload</button>
<div>Upload files</div>
</form>
<br />
###############################
<table id="files">
</table>
<button id="start_uploads">Start uploads</button>
<button id="cancel_uploads">Cancel uploads</button>
blueimp ファイル アップロードの JQuery コードは次のとおりです。
$(document).ready(function () {
$('#file_upload').fileUploadUI({
uploadTable: $('#files'),
downloadTable: $('#files'),
buildUploadRow: function (files, index) {
return $('<tr><td class="file_upload_preview"><\/td>' +
'<td>' + files[index].name + '<\/td>' +
'<td class="file_upload_progress"><div><\/div><\/td>' +
'<td class="file_upload_start">' +
'<button class="ui-state-default ui-corner-all" title="Start Upload">' +
'<span class="ui-icon ui-icon-circle-arrow-e">Start Upload<\/span>' +
'<\/button><\/td>' +
'<td class="file_upload_cancel">' +
'<button class="ui-state-default ui-corner-all" title="Cancel">' +
'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
'<\/button><\/td><\/tr>');
},
buildDownloadRow: function (file) {
return $('<tr><td>' + file.name + '<\/td><\/tr>');
},
beforeSend: function (event, files, index, xhr, handler, callBack) {
handler.uploadRow.find('.file_upload_start button').click(callBack);
}
});
$('#start_uploads').click(function () {
$('.file_upload_start button').click();
});
$('#cancel_uploads').click(function () {
$('.file_upload_cancel button').click();
});
});
コントローラー内には、次のアクション メソッドがあります。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveFile(IEnumerable<HttpPostedFileBase> files)
{
foreach (HttpPostedFileBase file in files)
{
//some file upload magic
}
return View("MyView");
}
MVC3を使用しています。
アクション メソッドでは、引数が IEnumerable 型の場合は null を受け取り、引数が HttpPostedFileBase 型の場合は奇妙な方法でファイルを受け取り、アクション メソッドは想定どおりに動作しません。
どんな種類の助けも大歓迎です、ありがとう。
乾杯!