Dateidownload via fgets - Fortschritt beerchnen

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

  • Dateidownload via fgets - Fortschritt beerchnen

    Hallo.

    Ich lade eine Datei runter und will den Fortschritt in Prozent anzeigen lassen. Dazu lese ich die Dateilänge aus dem HTTP Head und berechne es so:
    PHP-Code:
    $percent $bytes_read 100 $length
    Das komplette Script
    PHP-Code:
    $length // wird per HTTP Request ermittelt.
    $bytes_read 0;
    $h fopen("test.mp4""r");
    while (
    feof($h) == false)
    {
        
    $file .= fgets($h4096);
        
    $bytes_read += 4096;
        
    $percent $bytes_read 100 $length;
        
    $percent round($percent);
        echo 
    $percent."<br>";

    Beim letzten Durchlauf hat $percent einen Wert von 1760! oO
    Was mach ich hier falsch? Wo ich mein Fehler?



    mfg
    Zuletzt geändert von ruck32; 02.01.2010, 23:09.

  • #2
    Du gehst unsinngerweise davon aus, fgets würde immer so viele Bytes lesen, wie du mit dem zweiten Parameter angibst.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Davon bin ich ausgegangen so hab ich es verstanden. Wie könnte ich den rausfinden wieviele Bytes gelesen wurden?

      Kommentar


      • #4
        Zitat von ruck32 Beitrag anzeigen
        Davon bin ich ausgegangen so hab ich es verstanden.
        Was hast du so verstanden?

        Lies mal die Beschreibung der Funktion im Manual!

        Wie könnte ich den rausfinden wieviele Bytes gelesen wurden?
        In dem du dir die Länge des zurückgegebenen Strings anschaust.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ich habs endlich danke.

          Kommentar


          • #6
            Dann poste doch bitte noch die Lösung!

            Kommentar


            • #7
              Die Lösung hat wahsaga doch schon genannt! Aber
              PHP-Code:
              $file .= fgets($h4096);
              $bytes_read strlen($file); 

              Kommentar


              • #8
                Schon, aber ich denke so nen runder Abschluss macht einen Thread immer noch etwas wertvoller.

                Danke!

                Kommentar

                Lädt...
                X