{

Tobias Scheible
Autor, Referent & IT-Sicherheitsexperte
PDF-Dateien herunterladen anstatt anzeigen

Datum: Sonntag, 03. April 2011

Autor: Tobias Scheible

Kommentar(e): 6 Kommentare

Kategorie: Web Development

Tags: PHP, Download, PDF, htaccess

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.

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();
  • Artikel teilen:

Über Tobias Scheible

Tobias Scheible

Tobias Scheible arbeitet als wissenschaftlicher Mitarbeiter an der Hochschule Albstadt-Sigmaringen. Dort ist er als Autor und e-Tutor im Masterstudiengang Digitale Forensik tätig und leite im Bachelorstudiengang IT Security Praktika rund um das Thema Informationssicherheit. Darüber hinaus ist er Mitinitiator des Kompetenzzentrums Cyber Security Lab, welches Forschungsprojekte auf dem Gebiet der IT-Sicherheit koordiniert. Zusätzlich hält er Vorträge und Workshops zu aktuellen Themen der IT-Sicherheit.

Alle Blog-Artikel Website Facebook Twitter Xing

Kommentare

Rainer

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

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

David

Vielen Dank!

Markus

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

Hallo Markus,

das funktioniert in allen Browsern.

Grüße
Tobias

Michael

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

Schreibe einen Kommentar!

Hilfe zum Kommentieren

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 oder eine Gefährdung anderer Besucher darstellen, 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 sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. 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>

nach oben