使用ng-file-upload上传多个文件

时间:2015-09-28 08:23:56

标签: c# angularjs ng-file-upload

我正在尝试使用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中。

0 个答案:

没有答案