So…nachdem das Downloadscript auch auf einem „echten“ Server nicht funzt, will ich das halbwegs selber machen…
Wie folgt: ich will verhindern, dass man, zB PDF Dateien, direkt im Browser öffnen kann und will erreichen, eine beliebiege Datei eine Downlooad - ID zuzuweisen.
Beispiel: Jemand möchte „Video.rar“ downloaden, dann will ich das der HTML Code so aussieht:
ein simpler trick wäre, die id an ein weiteres script zu übergeben, dass den download startet und aus dem der wirkliche pfad zur datei nicht hervorgeht.
oder:
du übergibst die id xx:
die dahinter liegende datei kopierst du in ein verzeichnis tmp und startest den download, danach löscht du die datei wieder.
<?
if(isset($_GET['f'])) {
$fileid = $_GET['f']; // Links sehen so aus: seite.php?f=23
$row = mysql_fetch_assoc(mysql_query('SELECT * FROM `downloads` WHERE `id`=' .$f)); // Query, um die entsprechenden Daten zu holen
$filename = $row['filename']; // Den Dateinamen (+ Pfad wie bei mir) ermitteln und in eine Variable speichern
$filetype = mime_content_type($filename); // Den Typ der Datei rausfinden
mysql_query("UPDATE `downloads` SET `downloads` = `downloads`+'1' WHERE `id` = $fileid");
// Die obere Zeile ist sogar dafür da, um Downloads bzw. klicks zu zählen.
readfile($filename); // Dieser Funktion liest den Inhalt der Datei
header("Content-Type: $filetype"); // Hier wird die eigentliche PHP Datei zum Typ des Downloads (damit der Browser das auch versteht)
header("Content-Disposition: inline; filename=\"$filename\""); // Diese Zeile ist nur noch dafür da, um den Download-Dialog richtig anzuzeigen
#header("Content-length: ".filesize($filename)); // Eigentlich dafür da um die größe der Datei anzugeben. Funktioniert aber glaube nicht ganz
}
?>
Sn0opy bitte poste keinen dreck… manche hier kopieren sowas nähmlich einfach nur und dann ham wa den salat wenn sie ankommen und sagen das sie gehackt wurden…