ng-file-uploadを使用して複数のファイルをアップロードしようとしていますが、うまく動作しないようです。
私のhtmlは
<input ngf-select ng-model="files" ngf-multiple="true" id="files" name="files" type="file" value="Choose File(s)" />
ファイルが追加された後のボタン
<button ng-click="uploadFiles(files)">Upload</button>
私のコントローラーは、githubと jsfiddle で提供されている例に似ています。
$scope.uploadFiles = function (files) {
if (files && files.length) {
angular.forEach(files, function (file) {
$log.warn("counter");
if (files && !file.$error) {
file.upload = Upload.upload({
url: "FileUpload.ashx",
file: file,
fields: {
FormInstanceGuid: $scope.model.FormInstanceGuid,
FormName: $scope.model.Template.Name
}
});
file.upload.then(function (response) {
$log.info("We have succeeded in our call!");
$log.info(response);
}, function (reason) {
$log.info("We have failed in our call!");
$log.info(reason);
});
}
});
私の問題は、(サーバー上の) UploadHandler が 1 回だけ呼び出され、ファイルが 1 つしかないという事実に帰着します。
if (context.Request.Files.Count > 0) //This is never greater than 1
{
HttpFileCollection SelectedFiles = context.Request.Files;
for (int i = 0; i < SelectedFiles.Count; i++) {
HttpPostedFile file = SelectedFiles[i];
}
}
ネットワークタブを確認しましたが、各ファイルは独自の POST にあります。