Ich versuche, eine PDF-Datei anzuzeigen, die ich online gefunden habe.
Wenn ich versuche, eine PDF-Datei zu öffnen, zeigt Firefox sie normalerweise in seinem Standard-PDF-Viewer an (ich glaube, er heißt pdfjs). Das ist ein gutes und normales Verhalten.
Jedoch...
bei dieser speziellen PDF-Datei, die ich online gefunden habe, klicke ich auf den Link zu ihrem Speicherort und Firefox öffnet den Download-Dialog. Er beschreibt die Datei als „Binärdatei“, obwohl es sich um eine PDF-Datei handelt, die ich herunterladen und nativ anzeigen kann.
Ich gehe davon aus, dass der Webserver "nicht sagen" Firefox, dass diese PDF-Datei tatsächlich eine PDF-Datei ist. Firefox kann also nur davon ausgehen, dass es sich um eine „Binärdatei“ handelt.
Dies veranlasste mich, mir folgende Frage zu stellen …
Wenn ich dieses Ärgernis noch einmal erleben sollte, kann ich dann, anstatt die Datei herunterzuladen,GewaltFirefox, um eine Datei (online oder anderweitig) in seinem Standard-PDF-Viewer zu öffnen?
Lösungsversuche:
- Ich habe versucht, die Antwort vonWie rufe ich den in Firefox integrierten PDF-Viewer (pdf.js) manuell auf?, aber ohne Erfolg. Firefox versucht einfach, die „Binärdatei“ herunterzuladen.
- Ich habe
view-source:
am Anfang des Speicherorts des PDFs (alsoview-source:https://www.website.com/pdf.pdf
) hinzugefügt, und bekomme nur den unverarbeiteten ASCII-Text der PDF-Datei angezeigt.
PS: Ich verwende Firefox 48.0.2 ...
Ja, er ist alt …
Wie gewünscht:
Antwort1
Es gibt mehrere Möglichkeiten, wie Websites Ihren Browser zwingen können, eine Datei herunterzuladen, anstatt sie direkt zu öffnen:
Das download
HTML-Attribut
Dieses Attribut eines anchor
Tags versucht, Ihren Browser zum Herunterladen der Datei zu zwingen, anstatt sie wie gewohnt zu verarbeiten.
Dies wird im Allgemeinen verwendet, wenn Sie einen automatisch generierten Dokumentnamen verwenden und ihn dem Benutzer ansprechend präsentieren müssen.
Verwendung:<a href="http://www.website.com/path/to/YourDocument.pdf" download="YourDocument.pdf">...
Ich habe noch keine Möglichkeit gefunden, dies zu umgehen, aber da die wahre Ursache Ihres Problems weiter unten liegt, habe ich es nicht vollständig untersucht ...
HTTP-Header
Content-Disposition
Ein Webserver kann auf eine Anforderung eines Dokuments mit dem Content-Disposition
Header antworten, um zu beschreiben, wie der Browser die Datei empfangen soll.
Content-Disposition: Attachment
teilt dem Browser mit, dass er die Datei herunterladen soll, statt sie wie gewohnt zu verarbeiten.
Content-Disposition: Inline
teilt dem Browser mit, dass es innerhalb der Webseite oder als Webseite angezeigt werden kann.
Hier ist ein Firefox-Add-on, das Header übernimmt Attachment
und durch Header ersetzt Inline
:
https://addons.mozilla.org/en-US/firefox/addon/bypass-forced-download/
Technisch gesehen fängt es Content-Disposition: attachment
Header ab und schreibt sie im laufenden Betrieb in um Content-Disposition: inline
. Außerdem können Sie Websites angeben, die diese Umschreibung verwenden sollen und die nicht.
Wie bei den meisten Add-Ons kann die Laufleistung variieren.
Content-Type
Ein Webserver kann auf eine Anforderung eines Dokuments mit einem Content-Type
Header antworten, der den Typ des Dokuments beschreibt, das er an den Browser zurückgibt.
Content-Type: application/octet-stream
ist als „beliebige Binärdaten“ definiert und grundsätzlich nur als Datei herunterladbar, der Browser weiß sonst nichts damit anzufangen.
Dies wird angezeigt, wenn Ihr Browser die PDF-Datei anfordert, die Sie anzeigen möchten.
Content-Type: application/pdf
ist das, was Sie wahrscheinlich benötigen, wenn Sie diese Datei in Ihrem Browser anzeigen möchten oder wenn Sie zumindest möchten, dass Firefox versteht, um welche Datei es sich handelt und wie sie richtig verarbeitet wird.
Hier ist ein Firefox-Add-on, das so eingestellt werden kann, dass es auf Content-Type
Header lauscht und diese basierend auf ihrem Inhalt umschreibt.
Notiz: Das Ändern der Handhabung von MIME-Typen durch Ihren Browser kann gefährlich sein.
https://addons.mozilla.org/en-US/firefox/addon/content-type-fixer/
Auch hier gilt, dass dieses Add-on möglicherweise nicht in allen Fällen funktioniert.