2016-07-27 56 views
6

Aktualnie pracuję nad zadaniem pobrania pliku (PDF/excel/text) przy użyciu bezpiecznego interfejsu API w moim systemie w wersji kątowej 2 (beta).Konwertuj ciąg/Tekst na tablicę bajtów w skrypcie typu

Użyłem interfejsu API post z nagłówkiem uwierzytelniania i próbuję utworzyć obiekt blob przy użyciu odebranych bajtów danych.

Próbowałem przy użyciu następujący kod

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

Ale mam błąd, że metoda kropelka nie jest realizowany w kątowym 2 HTTP.

więc próbuję następujący kod, gdzie muszę konwertować ciąg do tablicy bajtowej.

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

tutaj napotykam na pewien problem z tablicą bajtów. Tablica bajtów nie jest taka sama, jak ta wysłana przez interfejs API.

Potrzebujesz pomocy w konwersji łańcucha na tablicę bajtów lub używając blob w kanciastej 2 żądanie HTTP get.

+0

Tak, blob() już wkrótce. Tymczasem sprawdź to: http://stackoverflow.com/questions/35368633/angular-2-download-pdf-from-api-andwidget-it-in-view – mico

+0

Thankyou mico Ta odpowiedź xhr pomógł mi –

+0

Jaka jest różnica między tablicami bajtów? wszystkie elementy lub tylko nagłówek/stopka? –

Odpowiedz