Datei auf Website zum Download anbieten (Bilder, Programme, Videos,...)
Hi Leute, ich erstelle zur Zeit eine Website mit HTML5. Darauf möchte ich Datein (Bilder, Programme, Videos,...) zum Download anbieten.
Nun meine Frage: Wie kann ich eine Datei so anbieten, das man auf einen Knopf drückt und dann das "Datei speichern unter"-Fenster aufgeht (Das soll alles auf meiner Website von statten gehen). Der Code dazu kann HTML5 oder JavaScript sein (ist mir am liebsten).
Ich hoffe ihr könnt mir helfen.
2 Antworten
Du lädst bspw. ne Excel-Datei in dein Home-Verzeichnis. Dann schreibst du einfach:
<a href="exceldatei.xls">Hier klicken</a>
Das "Datei Speichern-Fenster" geht dann auf, falls man es in dem Browser-Einstellungen nicht abgewählt hat. Bei mir wird bspw. alles auf dem Desktop gespeichert, was ich downloade. Aber falls das nicht der Fall ist, geht dieses Fenster dann auf und du kannst den Pfad wählen und halt speichern.
php download script :
$pathtofile = "/var/file/"; // ordner auf server
// die sachen per POST bzw GET , holen
$oldname = "soheisstdiedateibeimdownload.dat";
$nameoffile = "soliegtsieaufdemserver.dat";
// ab hier gehts los .
$name = $pathtofile.$nameoffile;
$fd = fopen($name, 'rb');
if($fd == false) die("ERROR: File not found.");
// send the right headers
header("Cache-Control: ");
// leave blank to avoid IE errors
header("Pragma: ");
// leave blank to avoid IE errors
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . $oldname . "\"");
header("Content-length:".(string)(filesize($name)));
sleep(1);
ob_flush();
flush();
while(!feof($fd)) { $buffer = fread($fd, 2048); print $buffer; }
fclose ($fd);
btw . immer auf injections beim path gucken . es könnte immer möglich sein mit .. ein ordner höher zu kommen , oder oder oder ... filename darf wirklich nur aus einem filenamen bestehen und kein pfad haben .