Hi,
ich habe auf Basis eine Downloadsscripts hier im Forum mal ein bisschen gebastelt und eine Funktionalität für externe Dateien hinzugefügt.
Jetzt hätte ich mal ne Frage:
Wird nicht dadurch dass mein Server die Datei runterlädt und dann an den Nutzer weitergibt für mich 2x die Dateigröße an Traffic erzeugt
Und wie siehts aus: Kann der Endnutzer, wie auch immer, die Original Adresse des Downloads herausfinden
Fragen über Fragen, hier das Script:
Auch andere Verbesserungsvorschläge werden dankend angenommen
Grüße und THX im Voraus,
puck ;-)
ich habe auf Basis eine Downloadsscripts hier im Forum mal ein bisschen gebastelt und eine Funktionalität für externe Dateien hinzugefügt.
Jetzt hätte ich mal ne Frage:
Wird nicht dadurch dass mein Server die Datei runterlädt und dann an den Nutzer weitergibt für mich 2x die Dateigröße an Traffic erzeugt
Und wie siehts aus: Kann der Endnutzer, wie auch immer, die Original Adresse des Downloads herausfinden
Fragen über Fragen, hier das Script:
PHP:
<?php
$filename='http://home.arcor.de/cooler32/Passwort.JPG';
$filename2 = $filename;
$kbs=0;
if (strstr($filename , "http://")) {
//Wenn filename eine URL ist, dann existenz der Datei prüfen
$test = @fopen ($filename, "r");
if (!$test) {
echo "<p>Datei konnte nicht geöffnet werden. <br>";
@fclose ($test);
exit;
}
//richtigen Dateiname herausfinden
//string wird anhand von / geteilt, dann in array geschrieben, array gespiegelt und der erste wert gelesen ;)
$array= split("/",$filename2);
$array_verkehrt = array_reverse($array);
$realfilename = $array_verkehrt[0];
//Wenn existiert dann öffnen + Bereitstellen
$dlfile = fopen( $filename , "r");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$realfilename.'"');
while (!feof($dlfile))
{
$bytes=1024;
if ($kbs>0)
{
$bytes*=$kbs;
}
echo fread($dlfile,$bytes);
flush();
if ((!feof($dlfile)) && ($kbs>0))
{
sleep(1);
}
}
fclose($dlfile);
}
// Wenn filename keine URL ist, von lokaler Datei ausgehen
else
{
//Prüfen ob Datei lokal vorhanden ist und dann öffnen
if ((file_exists($filename)) && (is_readable($filename)))
{
$dlfile=fopen($filename,'r');
}
else
{
die('<p>Datei konnte nicht geöffnet werden. <br>');
}
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$filename.'"');
// header('Content-Length: '.filesize($filename));
while (!feof($dlfile))
{
$bytes=1024;
if ($kbs>0)
{
$bytes*=$kbs;
}
echo fread($dlfile,$bytes);
flush();
if ((!feof($dlfile)) && ($kbs>0))
{
sleep(1);
}
}
fclose($dlfile);
}
?>
Auch andere Verbesserungsvorschläge werden dankend angenommen
Grüße und THX im Voraus,
puck ;-)
Zuletzt bearbeitet: