2016-07-11 1 views
1

J'essaye d'implémenter FileSaver.js comme cet exemple https://github.com/alferov/angular-file-saver pour télécharger le dossier produit par l'application de démarrage de ressort, j'ai le service de repos qui renvoient le dossier comme données de tableau d'octet.Angular File Saver dans le service de repos de ressort

@RequestMapping(value = "/generateReport/{reportId}/{parameters}", 
     method = RequestMethod.GET, 
     produces = MediaType.APPLICATION_JSON_VALUE) 
    @Timed 
    public byte[] generateReport(@PathVariable("reportId") String reportId, 
           @PathVariable("parameters") String parameters 
           ) { 

     byte[] bFile; 
     //some code 

     return bFile; 
    } 

Service angulaire

'generateReport': { 
      method: 'GET', 
      responseType: 'arraybuffer' , 
      url: 'adap_report/api/generateReport/:reportId/:parameters', 
      transformResponse: function (data) { 
       if (data) { 
        data = angular.fromJson(data); 
       } 
       return data; 
       } 
     }, 

contrôleur AngularJS

vm.generateReport = function() { 
     Report.generateReport({reportId:entity.id,parameters:angular.toJson(vm.parameterList)}, function(result) { 
     var data = new Blob([result], { type: 'application/octet-stream' }); 
     FileSaver.saveAs(data, 'text.txt'); 
     }); 
    }; 

fichier économiseur travaux et le fichier téléchargé, mais le contenu est faux, je viens d'obtenir le fichier avec ce contenu

[object Object] 

Ca n quelqu'un s'il vous plaît aidez-moi à enregistrer le fichier généré avec la bibliothèque angulaire FileSaver.js?

Répondre

0

J'ai résolu par http

$http.get('/adap_report/api/generateReport/'+entity.id+'/'+angular.toJson(vm.parameterList), {responseType: 'arraybuffer'}) 
      .success(function (data) { 
       console.log(data) 

       if(entity.reportoutputtypecode=="PDF"){ 
        var blobData = new Blob([data], {type: 'application/pdf'}); 
        var fileURL = URL.createObjectURL(blobData); 
        window.open(fileURL);    
       }else{ 
       var blobData = new Blob([data], {type: 'application/'+entity.reportoutputtypecode}); 
       FileSaver.saveAs(blobData, 'jasper-file.'+entity.reportoutputtypecode); 
      } 
      });