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/


