我正在尝试使用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(在服务器上)只被调用一次而且只有一个文件进来。我的想法是它应该为每个文件调用一次,因为它在forEach循环中。
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中。