Hoi,
ich arbeite gerade an meiner Homepage für meine eigenen Trance-Stücke (zur Zeit 32). Die Lieder sind in der Downloadsektion alle schön tabellarisch aufgelistet (dann kann man leichter Infos angeben wie Liedlänge etc.). Dann könnte man jeder einzelnen Datei einen Link in der Tabelle verpassen und die Downloads wären eingerichtet. Aber es soll auch ein gewöhnlicher Benutzer alles ganz einfach runterladen können. Denn viele wissen nicht auf Anhieb wie man den Vorgang automatisieren kann mit Firefox/Internet Explorer und wer Opera benutzt kriegt es afaik so hin, weil der schon so etwas in der Art standardmäßig drinnen hat. Aber ich kümmer mich halt drum, dass es jeder einfach hat. Dann könnte man natürlich überlegen: Okay, eine ZIP mit allen Liedern stellt man noch alternativ zur Verfügung. Dann wäre das Problem zwar so gelöst, aber man hätte eine informatisch betrachtet schlechte Lösung, es werden Daten übertragen die nicht immer übertragen werden müssen (mal abgesehen davon dass diese Gesamt-ZIP eben total unmodular und schlecht von sich aus wäre). Hat einer schon die ersten fünf auf der Platte, die restlichen 27 fehlen ihm noch, würde er 5 unnötig über die Leitung jagen. Das wäre unnötiger Traffic. Daher kommt die Idee nah einfach vor jedes Lied eine Checkbox zu platzieren und via PHP eine ZIP-Datei automatisch zu generieren, wenn der Benutzer unten auf Download klickt. Das wäre natürlich ideal, jeder könnte laden was er will. Dafür habe ich folgenden Code:
Er macht nur was ich gerade beschrieben habe. Meine Musik ist insgesamt 149MB groß. Dann reichen die 100MB in der ersten Zeile nicht mehr. Außerdem: Was ist wenn mehrere Benutzer gleichzeitig laden ? Könnte da der Speicher des Servers nicht sehr schnell überlaufen ? Was würdet Ihr tun ? Ich finde eben den Komfort an dieser Methode sehr schön, es ist einfach vom Konzept her in meinen Augen ideal.
Gruß
Nils
ich arbeite gerade an meiner Homepage für meine eigenen Trance-Stücke (zur Zeit 32). Die Lieder sind in der Downloadsektion alle schön tabellarisch aufgelistet (dann kann man leichter Infos angeben wie Liedlänge etc.). Dann könnte man jeder einzelnen Datei einen Link in der Tabelle verpassen und die Downloads wären eingerichtet. Aber es soll auch ein gewöhnlicher Benutzer alles ganz einfach runterladen können. Denn viele wissen nicht auf Anhieb wie man den Vorgang automatisieren kann mit Firefox/Internet Explorer und wer Opera benutzt kriegt es afaik so hin, weil der schon so etwas in der Art standardmäßig drinnen hat. Aber ich kümmer mich halt drum, dass es jeder einfach hat. Dann könnte man natürlich überlegen: Okay, eine ZIP mit allen Liedern stellt man noch alternativ zur Verfügung. Dann wäre das Problem zwar so gelöst, aber man hätte eine informatisch betrachtet schlechte Lösung, es werden Daten übertragen die nicht immer übertragen werden müssen (mal abgesehen davon dass diese Gesamt-ZIP eben total unmodular und schlecht von sich aus wäre). Hat einer schon die ersten fünf auf der Platte, die restlichen 27 fehlen ihm noch, würde er 5 unnötig über die Leitung jagen. Das wäre unnötiger Traffic. Daher kommt die Idee nah einfach vor jedes Lied eine Checkbox zu platzieren und via PHP eine ZIP-Datei automatisch zu generieren, wenn der Benutzer unten auf Download klickt. Das wäre natürlich ideal, jeder könnte laden was er will. Dafür habe ich folgenden Code:
PHP:
<?php
ini_set("memory_limit", "100M");
if ($_GET["button"] == "OK")
{
require("./zip.lib.php");
$zipfile = new zipfile();
for ($i=0; $i < count($_POST["check"]); $i++)
{
$filename = $_POST["check"][$i];
if (dirname($filename) == "/dl")
{
$clearfilename = substr($filename, strrpos ($filename, "/")+1);
$handle = fopen($filename, "r");
$content = fread($handle, filesize($filename));
fclose($handle);
$zipfile->addFile($content, $clearfilename, filemtime($filename));
}
}
header("HTTP/1.1 200 OK");
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename="Spiker.zip"');
header("Content-Transfer-Encoding: binary");
echo $zipfile->file();
}
else
{
?>
Gruß
Nils