PDF ist leer, wenn das herunterladen mit javascript

Ich habe ein web-service, gibt Inhalt einer PDF-Datei in Ihrer Antwort. Ich will zum download als pdf-Datei, wenn der Benutzer auf den link klickt. Der javascript-code, den ich geschrieben habe in der Benutzeroberfläche wie folgt:

$http.get('http://MyPdfFileAPIstreamURl').then(function(response){
var blob=new File([response],'myBill.pdf',{type: "text/pdf"});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myBill.pdf";
link.click();
});

'Antwort' enthält die PDF-byte-array-servlet-Ausgabestrom "MyPdfFileAPIstreamURl'. Und auch der Strom ist nicht verschlüsselt.

So, wenn ich auf den link klicken, PDF-Datei heruntergeladen, erfolgreich Größe von rund 200KB. Aber wenn ich diese Datei öffnen, es öffnet sich mit leeren Seiten. Der Start Inhalt des heruntergeladenen pdf-Datei ist im image.

Kann ich nicht verstehen, was ist hier falsch. Hilfe!!!

Dies ist die heruntergeladene pdf-Datei ab Inhalt:

PDF ist leer, wenn das herunterladen mit javascript

Sie sind mit einem media-Typ "text/pdf"; das ist ärger, pdf ist kein Textformat, es ist Binär, und behandeln Sie es als text, kann es zerstören. Versuchen Sie application/pdf statt.
Geändert, application /pdf, aber Problem ist immer noch die gleiche.
Dennoch ist es falsch zu verwenden text - /pdf-Datei hier. Darüber hinaus kann Ihr screenshot sieht aus wie irgendwo entlang der Linie etwas code behandelt die Datei als text, Lesen Sie es mit einem single-byte-Kodierung (Latin1) und schreiben Sie es mit UTF-8.
Das könnte Ihnen helfen: stackoverflow.com/a/31763030/5042982. Hinzufügen responseType :blob war für mich in AngularJS.

InformationsquelleAutor programmer129 | 2015-12-23

Schreibe einen Kommentar