Dateidownload mit Geschw.-Begrenzung und Trafficlimit

  • Themenstarter Themenstarter spex
  • Beginndatum Beginndatum
S

spex

Hidiho,

folgendes Script was ich geschrieben habe, möchte ich hier posten und euch fragen was ihr anders bzw. besser machen würdet.

Sinn und Zweck:
Download von Dateien mit Geschwindigkeitsbegrenzung und Trafficlimit.

Was auf jedenfall nicht so funktioniert wie ich es gerne hätte ist das er bei connection_aborted() wo er eigendlich abbrechen sollte wenn der Download (Clientseitig) unterbrochen wird und das aktuell geladene in die Datei schreiben soll, in der der verursachte Traffic steht.
Eine Lösung wäre es direkt in der While-Schleife den aktuellen Traffic in die Datei zu schreiben. Ich denke mir aber das das zu CPU/HDD lastig ist.

Wer da eine bessere Idee hat, kann sich hier ja mal zu Wort melden.

Hier der Code: http://rafb.net/p/cNcD2A90.html

Gruß - sp3x
 
Zuletzt bearbeitet von einem Moderator:
Danke, das funktioniert auf jedenfall besser als meine jetzige Methode.

Nun hab ich das Problem das er bei einer Wiederaufnahme des Downloads wieder von Vorne anfängt.

Eigendlich volkommen logisch da das Script ja nun wieder am Anfang der Datei anfängt zu lesen.

So..... da der Downloadmanager von Opera oder Firefox ja dem Script bzw. HTTPServer irgendwie sagen muss an welcher Stelle der Datei er (weiter)lesen möchte, wollt ich nun gerne wissen wie ich das realisieren/abfragen kann und wie ich den Pointer bei einer Datei die ich mit fopen() geöffnet habe, an eben diese Stelle setzen kann.

reicht folgendes aus, oder gibt es eine "harmlosere" Methode?
PHP:
fread( $file, 46584652 );
Nun sollte er ja den Pointer auf "46584652" setzen und es nicht ausgeben da ja kein ECHO oder PRINT vorhanden ist. sehe ich das richtig, oder ist das ein Denkfehler?


Gruß - sp3x
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
den Dateizeiger kannst du mit der [phpf]fseek[/phpf] - Funktion an eine andere Stelle setzen.

mfg
forsterm
 
Gerade editiert =P

Danke dir, das ist genau das was ich gesucht habe. PHP Doku lässt grüßen.
-----------------------

Nun muss ich noch rausfinden wie ich herausfinde ab welcher Stelle der Browser den Download der Datei fortsetzen möchte.
Mal bissl google'n
 
Folgendes Problem:

Ich lade eine Datei herunter die 62MB groß ist.
Immer nach ca. 60 Sekunden bricht Opera (Firefox und alle andere DLManager & Browser auch) mit dem Download ab.

Habe bereits versucht in der PHP.ini "max_execution_time" und "max_input_time" zu erhöhen, was aber nichts brachte.

Mein Code ist der von http://www.tutorials.de/blog/dennis-wronkas-blog-6278/download-mit-speedlimit-118/ aber in abgeänderter Form. Jedoch bringt der original Code den gleichen Fehler.

Wie kann ich das Problem beheben bzw. umgehen?
 
Zurück