Ich habe eine Knoten-App (speziell Segel App), die PDF-Datei dient. Mein Code für die Serving-Datei sieht so aus.
%Vor%Und wenn ich die URL für pdf ansehe, macht es die pdf fein. Aber manchmal werden nur die Binärdaten von PDF im Browser wiedergegeben, wie unten angegeben.
%Vor%Ich bin nicht in der Lage herauszufinden, warum es versäumt, die PDF-Datei nur zufällig zu liefern. Ist es Chromsache? oder fehle ich etwas?
Dies hier in der Hoffnung zu belassen, dass es jemandem hilft - ich hatte schon mehrmals ähnliche Probleme und habe eines von zwei Dingen:
:443
zusätzlich zu wss
angeben müssen. request
dient als Klartext anstelle von Objekten. Dies geschieht, indem encoding
wie folgt auf null gesetzt wird: request({url: myUrl, encoding: null})
. Ich bin mir ziemlich sicher, dass Sie wegen (2) damit konfrontiert werden. Schauen Sie sich Ссылка
anencoding - Codierung, die bei setEncoding der Antwortdaten verwendet werden soll. Ob Null, der Körper wird als Puffer zurückgegeben. Alles andere (einschließlich der Standardwert von undefined) wird als Kodierungsparameter übergeben toString () (was bedeutet, dass dies standardmäßig utf8 ist). (Hinweis: wenn Du erwartest binäre Daten, solltest du encoding: null setzen.)
Da die oben genannten Vorschläge für Sie nicht funktionierten, würden Sie gerne folgende Forensik sehen:
Sie müssen möglicherweise den Inhaltstypheader application/pdf
in die Knotenantwort aufnehmen, um dem Empfänger mitzuteilen, dass das, was er empfängt, eine PDF ist. Einige Browser sind intelligent genug, um den Inhaltstyp aus dem Datenstrom zu bestimmen, aber Sie können nicht davon ausgehen, dass dies immer der Fall ist.
Wenn Chrome die PDF-Datei als Text herunterlädt, würde ich das Ende der Datei überprüfen. Die PDF-Datei enthält am Ende die obligatorische Tabelle xref
. So sollte jede gültige PDF-Datei mit der folgenden Sequenz enden: %EOF
. Wenn nicht, wurde die Anfrage unterbrochen oder etwas schief gelaufen.
Sie benötigen auch HTTP-Header:
%Vor%Und
%Vor%Haben Sie versucht, die auf der Festplatte befindlichen Binärdateien zu speichern und manuell mit dem PDF-Reader zu öffnen? Es könnte beschädigt sein.