Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 12. August 2015 20:50
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Download von Dateien erzwingen
Man steht immer wieder mal vor der Situation (so wie ich gerade eben), dass man den Besuchern einer Webseite Dateien zum Download anbieten will, die aber primär im Browser angezeigt werden (können), also PDFs, Bilder, Filme etc.
Am elegantesten lässt sich das über einen Eintrag in der .htaccess Datei bewirken
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
Damit wird der Webserver einfach jede Datei mit der definierten Endung als Datenstrom / Download ausliefern. Und das "i" sorgt dafür, dass sämtliche Variationen in der Schreibweise abgefangen werden, also pdf, PDF, Pdf usw.
Voraussetzung ist, dass auf dem Server der mod_headers aktiviert ist, ansonsten gibt es einen 500er Fehler. Aber Achtung, auch diese Klippe lässt sich ggf. noch umschiffen. Manche Provider wie z.Bsp. 1&1 bieten das dynamische Nachladen von Modulen via .htaccess an
LoadModule headers_module modules/mod_headers.so
Einfach mal in deren FAQs schauen (oder den Support nackich machen ).
Wenn ihr das nicht pauschal für das ganze System so haben wollt, sondern nur für ein paar bestimmte Dateien, legt die htaccess mit dem oben beschriebenen Eintrag einfach in das jeweilige Verzeichnis der Dateien, die zum Download angeboten werden sollen.
Sollen mehrere Dateitypen zum Download angeboten werden, lässt sich obiger Eintrag einfach erweitern
<FilesMatch "\.(?i:pdf|jpg|gif|mov|mp3|mp4|avi|wmv)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
PS: Ja, ich weiß, wir hatten das Thema schon mehrfach im Forum, wollte es aber noch mal unter einem eigenen Topic festhalten .
Offline
#2 12. August 2015 21:18
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.931
- Webseite
Re: Download von Dateien erzwingen
Danke für die Zusammenfassung.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 12. Januar 2022 11:16
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Download von Dateien erzwingen
Man steht immer wieder mal vor der Situation (so wie ich gerade eben), dass man den Besuchern einer Webseite Dateien zum Download anbieten will, die aber primär im Browser angezeigt werden (können), also PDFs, Bilder, Filme etc.
Am elegantesten lässt sich das über einen Eintrag in der .htaccess Datei bewirken
<FilesMatch "\.(?i:pdf)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch>
Uralt, ich weiß - hab es aber gerade wieder mal gebraucht .
Natürlich hat HTML5 dafür auch eine deutlich modernere Antwort... mit dem Link-Attribut download. Sieht dann so aus:
[== html ==]
<a href="uploads/files/mein_1millioneneurogeschaeft.pdf" download>Referenz für Geschäfte ab 1 Mio Euro</a>
Lässt sich über den Parameter more auch ganz einfach mit cms_selflink nutzen.
Möchte man einen anderen Dateinamen mitgeben, ergänzt man das Attribut „download“ mit einem Attributwert. Dem Nutzer wird dann "nicht_dein_1millioneneurogeschaeft.pdf" als Dateiname vorgeschlagen.
[== html ==]
<a href="uploads/files/mein_1millioneneurogeschaeft.pdf" download="uploads/files/nicht_dein_1millioneneurogeschaeft.pdf">Referenz für Geschäfte ab 1 Mio Euro</a>
Dies klappt auch für andere Dateiendungen wie zum Beispiel bei Bildern mit ".jpg" und Texten mit ".txt".
Offline
Seiten: 1