Dateien (pdf, xls, ...) in Apache als Download forcieren
Ich finde es immer mühsam, wenn Dateien von Download-Links direkt im Broser geöffnet werden und das aktuelle Fenster "überschreiben". Eine unschöne Lösung finde ich auch, wenn Donload-Links jeweils mit einem "_blank" versehen sind und so ein neues Fenster geöffnet wird, welches je nach Browser dann leer stehen bleibt.
Optimal finde ich es, wenn immer der "Datei speichern" Dialog erscheint.
Grundsätzlich kann das im .htaccess sehr einfach mit einem Eintrag provoziert werden (z.B. für PDFs):
AddType application/octet-stream .pdf
Leider funktioniert das teilweise im IE nicht, da dieser noch "Content-Disposition attachment" im Header benötigt. Daher muss folgender Eintrag anstatt des AddTypes gemacht werden:
<FilesMatch "\.(?i:pdf)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch>
Beziehnungsweise für mehrere Dateitypen:
<FilesMatch "\.(?i:pdf|avi|mpg|mov|txt|doc|docx|ppt|pptx|xls|xlsx|zip|mp4)$"> ForceType application/octet-stream Header set Content-Disposition attachment </FilesMatch>
Natürlich könnte man Dateien auch über PHP ausliefern und die Header-Daten darüber modifizieren. Ich finde es aber nicht optimal, wenn PHP Binary-Daten ausliefern muss, ausser wenn man über PHP Vorverarbeitungen machen will (z.B. Security Check).
Drupal
Wenn man bei Drupal den Eintrag für Downloads aus dem files-Verzeichnis machen will, dann muss dies in der .htaccess Datei unterhalb des files-Verzeichnisses gemacht werden!!



Neueste Kommentare