Problem bei Downloadgeschwindigkeit beschränken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem bei Downloadgeschwindigkeit beschränken

    Hallo

    Ich habe mir mittels PHP einen Script gebastelt, mittels dem ich die Downloadgeschwindigkeit beschränken kann. Der Script funzt einwandfrei, jedoch kann der Browser einigee header Daten nicht korrekt verarbeiten.

    Wenn das $file eine Zip ist, oder ein RAR kommt es zwar auch so an, Windows, entpckt aber die Zips nicht, und quietiert dies mit einer Fehlermeldung. Während Win RAR beide aufmacht. Habt ihr einen Tipp.

    Trotz posten meines Scripts, bitte ich keinen Scriptdiebstahl zu begehen. Anwenden ok, aber dann nicht behaupten, man hätte es selbst gemacht.


    PHP-Code:
    $speed 8.5//DL Geschwindigkeit KB LGC LIB 
    $file "test.zip"//Datei aus dlfiles Ordner

    $acp explode('.',$file);
    $acc count($acp) - 1;
    $app "x-".$acp["$acc"]."-compressed";
    $gross filesize("dlfiles/$file");
    if(
    file_exists("dlfiles/$file") && is_file("dlfiles/$file")) { 
    header("Cache-control: private"); 
    header("Content-Type: application/$app"); 
    header("Content-Length: $gross"); 
    header("Content-Disposition: attachment; filename=\"$file\""); 
    ob_end_flush(); //nur bei ob_end_start()

    $fd fopen("dlfiles/$file""r"); 
    while(!
    feof($fd)) { 
    echo 
    fread($fdround($speed*1024)); 
    flush(); 
    sleep(1); 

    fclose ($fd); 


    Mit PHP habe ich gar keine Probs, jedoch stimmt mit den headern irgend was nicht!
    Zuletzt geändert von LGC; 31.08.2005, 18:37.

  • #2
    P.S. an den Dateien liegt es definitiv nicht, denn jede Zip Datei verhält sich gleich! Mit Win gehts nicht mit RAR schon.

    Also irgend was an den headern. Hab aber schon zig sachen rumgefummelt.

    Kommentar


    • #3
      entfern doch mal alle, außer content-type *zuck*

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Also

        Es lag nicht an den headern, wie ich vermutet habe. Ob_End_Flush() macht das Problem. Wenn ich Ob_End_Flush() Ausbaue, verhält sich die Datei 1 A. Ich wollte nun eine weitere Datei anhängen, und dies Funktioniert ebenfalls. Man kann also mit PHP nicht nur die DL Geschwindigkeit bestimmen (allerdings nur die maximale) sodern auch einen Downloadmanger betreieben. Jedoch frägt der Browser mit jdem File extra ob es heruntergeladen werden soll.


        Sinnvoll ist es aber vorab zu prüfen, ob der User den Script nicht abgebrochen hat. Zu Beispiel mittels connection_aborted()
        liefert den Status der Verbindung:

        0 - NORMAL

        1 - ABORTED

        2 - TIMEOUT

        Ebenfalls sollte man zuvor die benötigte DL Zeit mit set_time_limit() bedenken.

        Kommentar


        • #5
          Ich hätte da doch noch ein kleines Problem. Schaut mal folgendes an.

          Wenn ihr die Seite öffnet, beginnt der Download nicht, sondern der echo. (Beim ersten mal). Schliesst ihr den Browser und öffnet den Link, egal wie oft, gehts immer, und immer und immer normal. Woran könnte das liegen?

          http://h9755.serverkompetenz.net/test.php
          Zuletzt geändert von LGC; 31.08.2005, 18:37.

          Kommentar


          • #6
            Original geschrieben von LGC
            Ich hätte da doch noch ein kleines Problem. Schaut mal folgendes an.

            Wenn ihr die Seite öffnet, beginnt der Download nicht, sondern der echo. (Beim ersten mal). Schliesst ihr den Browser und öffnet den Link, egal wie oft, gehts immer, und immer und immer normal. Woran könnte das liegen?

            http://h9755.serverkompetenz.net/test.php
            bei mir gings sofort beim ersten Klick...

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar

            Lädt...
            X