2014-05-09 22 views
5

Tôi đang sử dụng thư viện Angular File Upload này cho quá trình tải lên của mình.Hàng đợi Tải lên Tệp Góc

Nó tải lên hoàn toàn ổn khi sử dụng cùng một thiết lập được liệt kê trên repo đó.

Tuy nhiên, tôi phải có các tệp tải lên trong hàng đợi (1 tệp khác) so với tất cả các tệp tải lên cùng một lúc.

Example.

Ví dụ này đang sử dụng repo ngã ba và yêu cầu là tôi sử dụng danh sách tôi đã liệt kê.

Các tùy chọn khác như tạm dừng/hủy cũng sẽ là cần thiết.

thiết lập hiện tại:

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

Bạn có thể sử dụng chức năng đệ quy và chức năng đệ quy sẽ gọi khi bạn đã đáp ứng tất cả các điều kiện. –

Trả lời

1

Hãy thử điều này, về cơ bản nó chỉ gửi một tập tin tại một thời điểm cho đến khi thực hiện. Bạn có thể sử dụng $ timeout nếu bạn muốn trì hoãn việc gửi từng tệp:

$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

Hiện tại bạn nên tự quản lý hàng đợi của mình. Bạn có thể bắt đầu tải lên mới vào cuối các video tải lên trước đó.