Gnoll: Dateien schützen

Beitrag lesen

Nun...

lies die Datei per PHP mit readfile ein. (Sorge selbstverständlich dafür, dass vor dieser Aktion noch keinerlei Ausgabe erfolgt ist, sonst kann der Header nicht gesendet werden.)

Du nimmst vielleicht auch ein Script mit dem Namen "download" o.ä. (müsstest dann Apache aber noch mitteilen, dass er die ausführen soll - trotz keiner Dateierweiterung).

Jedenfalls hast du den Inhalt dieser Datei $fname in einer Variablen, sagen wir $var. Dann kannst du ihn an den Browser senden (Micro$oft Internet Exploder benötigt einen speziellen Header msdownload:)

$size = strlen($var);

if (ereg("MSIE",$HTTP_USER_AGENT)) {
    header("Content-type: application/x-msdownload");
}
else {
    header("Content-type: application/octetstream");
}

header("Content-disposition: attachment; filename=$fname");
header("Content-Length: ".$size);

So.. hoffe, das klappt.