GabrielG: Download über PHP steuern ohne readfile

Hallo,

ich will einen PHP-Downloadcounter schreiben, habe aber das Problem, dass einige Downloads deutlich größer sein werden als 8 MB und das memory_limit beträgt die standartmäßigen 8 MB.
Gibt es hier eine alternative zu readfile bzw. eine Lösung, mit der sich beliebig große Dateien downloaden lassen?

Gruß,
GabrielG

  1. n'abend,

    ich will einen PHP-Downloadcounter schreiben, habe aber das Problem, dass einige Downloads deutlich größer sein werden als 8 MB und das memory_limit beträgt die standartmäßigen 8 MB.
    Gibt es hier eine alternative zu readfile bzw. eine Lösung, mit der sich beliebig große Dateien downloaden lassen?

    readfile() liest die gesamte Datei in den Buffer. Was nicht ganz so toll ist, wenn du mit großen Dateien hantierst. Du kannst die Funktionalität von readfile jedoch auch mit einer Schleife und fread() hinbekommen:

    $fh = fopen( 'large.file', 'rb' );  
    while( !feof( $fh ) )  
      echo fread($fh, 8192); // 8KB  
      
    fclose($fh);
    

    Du könntest nach dem Zählen des Downloads auch auf die eigentliche Datei mittels header() weiterleiten. Das verhält sich dann aber nicht ganz gleich dem durchreichen der Daten.

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Vielen Dank!