2017-04-11 1 views
1

J'ai implémenté la directive ng-file-upload pour télécharger mes fichiers vers l'URL respective ..... pour l'instant quand je sélectionne un fichier upload et select se passe simultanément selon la fonctionnalité de ng-file-upload. Mais, après le téléchargement lorsque j'essaie de télécharger à nouveau certains autres fichiers .... les fichiers précédemment téléchargés disparaissent visiblement ..... je veux aussi conserver les fichiers téléchargés précédents et doivent obtenir le nouveau téléchargé les fichiers ci-dessous ceux ... comment peut-on travailler sur cela?Comment conserver les fichiers précédemment téléchargés en utilisant ng-file-upload lorsque vous essayez à nouveau de les télécharger?

Mon html

<form> 
     <input type="text" class="browse-form"placeholder=" Click browse to load documents " required> 
     <button ngf-select="vm.uploadFiles($files)" multiple accept=".csv,.pdf,.doc,.docx,.xlsx" class="btn btn-info btn-md">Browse</button> 
     </form> 
     <p style="margin-top: -30px;"> Note:Supported file formats are word,excel and pdf only</p> 
     <table class="table table-fixed"> 
     <thead class="table-header"><tr> 
     <th class="col-xs-6">DOCUMENT NAME</th> 
     <th class="col-xs-1">SIZE</th> 
     <th class="col-xs-1">VERSION</th> 
     <th class="col-xs-2">DATE UPLOADED</th> 
     <th class="col-xs-2">UPLOADED BY</th> 
     <th class="col-xs-1">ACTION</th></tr> 
     </thead> 
     <tbody> 
     <tr ng-repeat="uploading in vm.files track by $index" style="font:smaller"> 
     <td>{{uploading.name}}</td> 

MES controller.js

vm.uploadFiles = function(files){ 
vm.files = files; 
angular.forEach(files,function(file){ 
    file.upload = Upload.upload({ 
     url:' ', 
     data:{file:file} 
    }); 

    file.upload.then(function(response){ 
     $timeout(function(){ 
      file.result = response.data; 
     }); 
     }, 

    function (response) { 
     if (response.status > 0) 
      vm.errorMsg = response.status + ': ' + response.data; 
    }, 

    function (evt) { 
     file.progress = Math.min(100, parseInt(100.0 * evt.loaded/evt.total)); 
    });}); 

Répondre

0

pourquoi ne vous créez pas un tableau et pousser à lui chaque fichier temps est téléchargé

vm.fileArr = [] 

vm.uploadFiles = function(files) { 


    vm.files = files; 

    angular.forEach(files, function(file) { 

     vm.fileArr.push(file)// show this array 

     file.upload = Upload.upload({ 
      url: ' ', 
      data: { 
       file: file 
      } 
     }); 
     file.upload.then(function(response) { 
       $timeout(function() { 
        file.result = response.data; 
       }); 
      }, 
      function(response) { 
       if (response.status > 0) 
        vm.errorMsg = response.status + ': ' + response.data; 
      }, 
      function(evt) { 
       file.progress = Math.min(100, parseInt(100.0 * evt.loaded/evt.total)); 
      }); 
    }); 
} 
+0
+0

la logique de conserver les fichiers téléchargés précédents fonctionne dans un contrôleur en le poussant vers le tableau .... mais toujours afficher en HTML va indéfini ... j'ai essayé à l'intérieur de foreach boucle aussi @ sachila ranawaka – HKI345

+0

pouvez-vous créer une démo –