2014-05-09 89 views
5

我正在使用此Angular File Upload庫進行上傳。角度文件上傳隊列

使用該回購協議中列出的相同設置完全可以上傳。

但是,我必須將文件上傳到一個隊列(一個接一個的文件),而不是同時上傳所有文件。

Example

該示例使用的是叉式回購,並且要求是我使用了我列出的。

其他選項,如暫停/取消也是需要的。

當前設置:

Controller: 

$scope.onFileSelect = function($files) { 
    for (var i = 0; i < $files.length; i++) { 
    //loop through files and put in an array 
    } 
    //execute upload function 
    $scope.start(files); 
    } 
} 
}; 

$scope.start = function(index) { 
    $upload.upload({ 
    //upload clode 
    }).progress(function(evt) { 
    //Progress calculation 
    }).success(function(data, status, headers, config) { 
    //Success return 
    }).error(function(data, status, headers, config) { 
    console.log(data); 
    }); 
}; 
+0

您可以使用遞歸函數,並且一旦滿足所有條件,遞歸函數應該調用。 –

回答

1

試試這個,基本上它只是發送一個文件上的時間,直到完成。如果您希望發送每個文件之間的延遲,您可以使用$超時:

$scope.onFileSelect = function($files) { 
    $scope.uploadList = $files; 
    $scope.uploadIndex = 0; 
    $scope.start(uploadIndex) 
}; 

$scope.start = function() { 
    $upload.upload({ 
    //upload code, send file 
    // Send file $scope.uploadList[$scope.uploadIndex]; 
    }).progress(function(evt) { 
    //Progress calculation 
    }).success(function(data, status, headers, config) { 
    //Success return 
    $scope.uploadIndex++; 
    // Send the next file by calling ourselves 
    if (uploadIndex < uploadList.length) 
     $scope.start(); // Send the next one now - could be deferred a little by using $timeout 
    }).error(function(data, status, headers, config) { 
     console.log(data); 
    }); 
}; 
0

現在您應該自己管理您的隊列。您可以在最後一次上傳時開始新的上傳。