55 Stimmen

HTACCESS: Download bestimmter Dateitypen erzwingen

Tutorial von Stefan Trost | Letztes Update am 18.01.2023 | Erstellt am 16.09.2014

Je nach Browsereinstellung werden bestimmte Dateitypen wie zum Beispiel Bilder, Videos, Musik, Textdateien oder PDF-Dokumente direkt im Browser angezeigt. Möchte man aber zum Beispiel eine JPG- oder PDF-Datei zum Download anbieten, wird es schwierig: Jedes Mal wenn ein Nutzer auf den entsprechenden Link klickt, startet nicht der Download sondern die Datei wird bloß angezeigt.

In diesem Tutorial möchte ich euch daher zwei Lösungen zeigen, mit denen ihr die Anzeige von beliebigen Dateitypen im Browser verhindern könnt, so dass ein Nutzer die betreffenden Dateien unabhängig von seinen Browsereinstellungen immer als Download angeboten bekommt. Eine Lösung arbeitet mit der Hilfe von HTACCESS, die andere  mit PHP.

Die HTACCESS-Lösung

Um den Download bestimmter Dateitypen beziehungsweise Dateien mit einer bestimmten Dateiendung mit der Hilfe von HTACCESS zu erzwingen, benötigen wir nur wenige Zeilen in unserer HTACCESS-Datei.

Die folgenden vier Zeilen sind ausreichend um uns Abhilfe zu verschaffen:

<FilesMatch "\.(?i:pdf|jpg|png|avi|mp3)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

Der Trick dabei ist, die Dateien als binäre Anhänge zu deklarieren, wodurch der Browser die Dateien zum Download anbietet, anstatt sie standardmäßig anzuzeigen.

In der ersten Zeile sind alle Dateiendungen aufgelistet, für die dies gelten soll. In unserem Beispiel haben wir alle Dateien mit der Endung PDF, JPG, PNG, AVI und MP3 als binäre Anhänge deklariert. Die Liste der Endungen kann natürlich individuell nach Belieben angepasst werden.

Mit dem "?i:" sorgen wir übrigens dafür, dass die Groß- und Kleinschreibung der Dateiendung egal ist (PDF und pdf).

Die PHP-Lösung

Natürlich ist die HTACESS-Lösung eine sehr simple Methode. Etwas flexibler sind wir, wenn wir mit PHP arbeiten. Jedem, der etwas mehr Anpassung für den Download benötigt, empfehle ich das PHP-Download-Skript für Dateien.

Auch dieses Script zwingt den Browser zum Download, bietet jedoch mehr Möglichkeiten als nur den Header zu verändern (zum Beispiel einen Download-Counter oder Downloads unter einem anderem Namen als auf dem Server gespeichert).

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

PHP: Datei Download Skript

Tutorial | 0 Kommentare

Delphi: JPEG Bild in TBitmap laden

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.