Tobias Scheible Cyber Security & IT-Forensik Dozent
PDF-Dateien herunterladen anstatt anzeigen

PDF Download erzwingen

Der Acrobat Reader und auch andere PDF-Programme nisten sich im Web-Browser ein und zeigen PDF-Dateien direkt im Browser an. Bei einer sehr großen Datei führt dieser Mechanismus allerdings zu Problemen.

Sonntag, 03. April 2011
8 Kommentare

Wenn zum Beispiel ein komplexer Katalog mit mehreren 100 Megabyte aufgerufen wird, kann dies den Browser blockieren, bis der Download beendet ist. Oder der User schließt den Tab, bevor überhaupt etwas angezeigt wird. Das gleiche gilt für Druckdaten und Formulare, wenn diese gespeichert werden müssen. Dann ist ein Anzeigen im Web-Browser unerwünscht.

Den Download von PDF-Dateien kann man aber über Einstellungen in der Apache Konfigurations-Datei .htaccess erzwingen. Mit dem folgenden Eintrag wird immer ein Download gestartet:

AddType application/octet-stream .pdf

Alternativ kann der Download auch durch Setzen des Headers in PHP erzwungen werden:

header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename="downloadname.pdf"");
include 'pfad/dateinamen.pdf';
exit();

Über Tobias Scheible

Tobias Scheible

Hallo, mein Name ist Tobias Scheible. Ich bin begeisterter Informatiker und Sicherheitsforscher mit den Schwerpunkten Cyber Security und IT-Forensik. Mein Wissen teile ich gerne anhand von Fachartikeln hier in meinem Blog und in meinem Fachbuch. Als Referent halte ich Vorträge und Workshops für Verbände und Unternehmen u. a. auch offene Veranstaltungen für den VDI und die IHK.

Kommentare

Rainer am 31. Mai 2011 um 01:16 Uhr

Danke für den guten Tipp. Wie oft habe ich mich schon geärgert, wenn das Öffnen einer sehr großen PDF nicht gefunzt hat. Ich hoffe, das wird jetzt besser.

Martin am 31. Mai 2011 um 14:33 Uhr

Vielen Dank dafür. Auch wir haben große pdf’s zum Download und mit diesem Problem zu kämpfen.

David am 21. September 2011 um 17:32 Uhr

Vielen Dank!

Markus am 27. August 2012 um 16:19 Uhr

Hi.. Der Tipp ist super, aber ich frage mich gerade, ob diese Lösung per .htaccess für jeden Browser funktionieren soll?

Kannst du da was zu sagen? Oder konkret: Wurde diese Lösung schonmal erfolgreich auf einer aktuellen Version von Safari getestet?

Tobias Scheible am 23. September 2012 um 16:31 Uhr

Hallo Markus,

das funktioniert in allen Browsern.

Grüße
Tobias

Michael am 16. Januar 2015 um 11:05 Uhr

Wer Kiokssysteme o.ä. betreibt hat leider das umgekehrte Problem – man möchte den Download verhindern, das PDF soll definitiv angezeigt werden.
Möglicherweise kann man das irgendwie irgendwo im Browser anpassen, aber das ist mühselig. Da wir ohnehin einen Proxy betreiben lösen wir das Problem, indem wir den – nicht HTTP/1.1 konformen – Header im Proxy einfach löschen. Also nicht darauf verlassen 🙂

Im Squid geht das mit

reply_header_access Content-Disposition deny all

Christoph am 12. November 2020 um 10:23 Uhr

Super Lösung.

Lässt sich das mittels php und global für alle PDFs auch lösen?

Wäre super wenn du dazu ein Snippet posten könntest.

Danke

Tobias am 15. November 2020 um 21:09 Uhr

Mit PHP ist dies global nicht möglich. Hier muss der .htaccess-Eintrag verwendet werden.

Schreibe einen Kommentar!

Hilfe zum Kommentieren und Hiweise

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen, eine Gefährdung anderer Besucher darstellen oder keinen sinvollen Inhalt beinhalten, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und damit ich direkt Kontakt aufnehmen kann. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

Ihre E-Mailadresse wird nicht veröffentlicht. Mit dem Absenden anerkennen Sie die Datenschutzhinweis des Blogs.