Tipps & Tricks 28.04.2004, 20:45 Uhr

Links direkt auf dem Computer speichern lassen

Ich möchte auf meiner Website Filme zum Download anbieten. Wenn ich jedoch einen Link zu der entsprechenden Datei setze, werden die Filme nicht heruntergeladen, sondern im Browser geöffnet. Was muss ich tun, dass die Filme (avi, mpg, mov, asf) wirklich auf dem Computer gespeichert werden?
Ob eine Filmdatei im Browser angezeigt wird, hängt von der Browser-Konfiguration des Besuchers ab. Wenn der Browser das entsprechende Plug-In besitzt, kann er den Film im Browserfenster abspielen lassen, andernfalls kommt die Aufforderung zum Speichern oder direkten Öffnen. Es gibt jedoch eine Möglichkeit, den Browser dazu zu bringen, dass er die Speicher-Aufforderung immer anzeigt. Mit CGI oder PHP können Sie den HTTP-Header verändern, der dem Browser Informationen über den Inhalt der kommenden Datei gibt. Das untenstehende Beispiel führt dazu, dass der Browser die Dateien immer herunterlädt. Ihr Webserver muss dazu die Skriptsprache PHP unterstützen, was heute bei den meisten Servern der Fall ist.
Erstellen Sie in einem beliebigen Editor eine neue Textdatei. Füllen Sie diese mit folgendem Code:
<?
$erlaubt = array("datei_1.avi", "datei_2.txt", "datei_3.mov");
if (in_array($_GET[file], $erlaubt)){
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$_GET[file]);
readfile($_GET[file]);
}else{
die("Datei nicht verfügbar");
}
?>
Speichern Sie die Datei im Verzeichnis, wo sich die Downloads befinden, unter dem Namen "download.php" ab. Tragen Sie nun in der zweiten Zeile nach "$erlaubt" die Dateinamen wie im Beispiel oben ein, die zum Download freigegeben werden sollen. Die Liste ist beliebig fortsetzbar.
Wenn Sie die Datei "meinfilm.mov" nun verlinken möchten, verwenden Sie "download.php?file=meinfilm.mov" als Linkadresse. Klickt man den Link an, erscheint das Fenster mit der Speicher-Aufforderung. Der Link funktioniert jedoch nur, wenn Sie ihn auf dem Webserver testen.



Kommentare
Es sind keine Kommentare vorhanden.