PHP - Dateien als Download anbieten

PHP - Dateien als Download anbieten

Um in PHP Dateien dem User als Download zur Verfügung zu stellen, muss der header des Scripts geändert werden:

Der Aufruf würde bspw. über die folgende URL erfolgen: http://www.domain.com/getfile.php?file=meindownload.zip

Für binäre Daten würde man dann folgenden Code verwenden:

Bei binären Daten ist es wichtig ob_clean() und flush() zu verwenden, da es sonst vorkommen kann, dass die Daten nicht korrekt übermittelt werden..

Einen anderen Weg Dateien direkt zum Download anzubieten bietet der Apache selbst - hier kann man den Header wie folgt ändern:

<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>

Diese Eintragung müsste in eine .htaccess Datei gemacht werden.

update 07.12.2010
Perishable Press hat sich dem Thema ebenfalls noch einmal angenommen -> http://perishablepress.com/press/2010/11/17/http-headers-file-downloads/