Hallo,
so, das script funktioniert nun
.
grats
Nur wenn ich auf einer seite einen downloadlink habe dann hmmm
dann kann die file ja jeder user downloaden egal ob er
authorisiert ist auf die seite zu kommen. Man kann ihm den
link ja schicken
.
wenn man mit normalen Links arbeitet ja. Wenn Du mit headern
arbeitest kann die Datei auch ausserhalb des Webroots liegen.
header(„File: $filename“); dürfte das sein (darf keine Ausgabe
vorher stehen) und $filename muss auf die Datei zeigen…
Ne, so nicht, das erzeugt nen 302 Redirect, der Browser bekommt die echte URL zu sehen, versucht diese zu laden und bringt eine schöne Fehlermeldung, wenn die Datei außerhalb des Webroot liegt.
Eher so:
Link: Bla
download.php:
<?php // User- Prüfung einfügen, falls nicht erfolgreich, 403 senden :wink:<br>
$download\_dir= "/pfad/zum/Verzeichnis"; // Außerhalb des Webroot oder
// per .htaccess geschützt
$file = str\_replace("\\/","", $\_GET["file"]);
if (!is\_file($download\_dir."/".$file)) {
Header ("HTTP/1.0 404 Not Found");
exit;
}
Header("Content-Type: application/octed-stream");
Header("Content-Length: ".filesize($download\_dir."/".$file));
header("Content-Disposition: attachment; filename=\"$file\"");
readfile($download\_dir."/".$file);
?\>
Gegebenfalls sind noch Basteleien mit dem Content-Type abhängig vom Dateityp erforderlich, wenn z.B. ZIPs/PDFs direkt geöffnet werden sollen.
Alexander