2016-07-11 22 views
1

Ich versuche, FileSaver.js wie dieses Beispiel https://github.com/alferov/angular-file-saver zu implementieren, um generierte Datei von Spring-Boot-Anwendung herunterladen, habe ich Rest Service, die die Datei als Byte-Array-Daten zurückgeben.Angular File Saver im Frühjahr Rest Service

@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; 
    } 

Angular Service

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

AngularJS Controller

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'); 
     }); 
    }; 

Datei Schoner funktioniert und heruntergeladene Datei aber der Inhalt ist falsch, ich mit diesem Inhalt gerade Datei erhalten

[object Object] 

Ca n bitte helfen Sie mir, generierte Datei mit eckigen FileSaver.js Bibliothek zu speichern?

Antwort

0

Ich habe es von http gelöst

$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); 
      } 
      });