2016-07-27 14 views
6

Ich arbeite derzeit an Aufgabe, Datei (PDF/Excel/Text) mit sicheren API in meinem System in eckigen 2 (Beta) Version zu downloaden.konvertieren Zeichenfolge/Text in Byte-Array in Typ Skript

Ich habe Post-API mit Authentifizierung Header verwendet und versuchen, Blob mit Daten empfangen Bytes zu erstellen.

Ich habe versucht, mit folgendem Code

return this.http.get(url, { headers: this.headers}).map(response => response.blob()) 

Aber, ich erhielt den Fehler, dass Blob Methode nicht in Winkel 2 HTTP implementiert ist.

so versuche ich folgenden Code, wo ich Zeichenfolge in Byte-Array konvertieren muss.

return this.http.get(Configuration.API_URL + url, { headers: this.headers }).map(
      response => { 
       var bytes = []; 

       var utf8 = encodeURIComponent(response.text()); 
       for (var i = 0; i < utf8.length; i++) { 
        bytes.push(utf8.charCodeAt(i)); 
       }  
       var data = new Blob([bytes], { type: 'application/pdf' }); 
       var fileURL = URL.createObjectURL(data); 
       window.open(fileURL); 
      } 
     ); 

Hier habe ich ein Problem mit dem Array Bytes konfrontiert. Byte-Array ist nicht dasselbe wie das von der API gesendete Byte.

Brauchen Sie Hilfe bei der Umwandlung von String in Byte-Array oder die Verwendung von Blob in Winkel 2 HTTP get Anfrage.

+0

Ja, blob() kommt bald. In der Zwischenzeit, überprüfen Sie dies bitte: http://stackoverflow.com/questions/35368633/angular-2-download-pdf-from-api-and-display-it-in-view – mico

+0

Danke mico diese xhr Antwort hat mir geholfen –

+0

Was ist der Unterschied zwischen den Byte-Arrays? alle Elemente oder nur Kopf-/Fußzeile? –

Antwort