Hallo Patrick!
Du willst sicherlich aus einem geschützen Verzeichnis Dateien zum Download anbieten, die nur von angemeldeten Usern herunter geladen werden können. Das könntest Du auch über einen htaccess Zugriffsschutz erreichen. Wesentlich aufwändiger weil sicherheitskritischer könntest Du es über PHP ausliefern. Also lesen, header basteln und ab damit. Beachte meine Anmerkung am Ende.
Überprüfen ob das File da ist:
file_exists($filename)
Fileextension und Content Type bestimmen
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch ($file_extension) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpe": case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
Diverse Header setzen:
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header ("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".@filesize($filename));
set_time_limit(0);
@readfile("$filename") or die("Keine Datei");
Unbedingt daran denken, dass Du sicher gehen musst, dass keine anderen Verzeichnisse als das von Dir gewünschte vom Script aufgerufen werden kann. Am besten mit einer Positivliste.
Schönen Gruß
Afra
Endlich Ruhe