Peter: Dateigrößenbeschränkung bei readfile

Hallo Zusammen,

ich hab eine Frage den Download einer Datei mittels readfile() betreffend.
Ich nutze momentan ein Script mit readfile() um den Download zu steuern
und vorallem den User nicht den Pfad der Datei preiszugeben. Leider
ist das ganze auf Dateigrößen bis 2MB momentan begrenzt. Dies kann man wohl
mit der Vergrößerung des Skriptspeichers lösen (wie?). Gibt es dabei ein absolutes
physikalisches Obermaß, ich denke momentan an Dateigrößen bis 200MB.

Danke schonmal für eine Antwort.

Peter

  1. hi,

    ich hab eine Frage den Download einer Datei mittels readfile() betreffend.
    Ich nutze momentan ein Script mit readfile() um den Download zu steuern
    und vorallem den User nicht den Pfad der Datei preiszugeben. Leider
    ist das ganze auf Dateigrößen bis 2MB momentan begrenzt.

    Ja, readfile liest erst mal die ganze Datei ein.

    Dies kann man wohl mit der Vergrößerung des Skriptspeichers lösen (wie?).

    Man könnte das memory_limit hochsetzen - wäre aber unklug, weil -

    Gibt es dabei ein absolutes
    physikalisches Obermaß, ich denke momentan an Dateigrößen bis 200MB.

    • dann bräuchte eine einzelne Download-Scriptinstanz bis zu 200 MB Hauptspeicher.

    Besser wäre es, die Datei häppchenweise einzulesen (fopen, fgets), auszugeben - und ggf. noch zwischendurch mittels flush() den Ausgabepuffer zu leeren.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi,

      ich denke momentan an Dateigrößen bis 200MB.

      • dann bräuchte eine einzelne Download-Scriptinstanz bis zu 200 MB Hauptspeicher.

      plus Overhead für das Datenmodell, das Script, andere Variablen, ...

      Besser wäre es, die Datei häppchenweise einzulesen (fopen, fgets), auszugeben - und ggf. noch zwischendurch mittels flush() den Ausgabepuffer zu leeren.

      Jupp.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Super.

        Danke euch beiden. Es funktioniert, eine kleine Frage hab ich da noch.
        Kann es sein das ich wegen der Zeit die der Download (online) benötigt, die max. Laufzeit
        eines Scripts in php hochsetzen muss? Oder arbeitet das Skript das ab und
        wie lange am ende die Daten brauchen bis sie beim Nutzer ankommen ist egal?

        Peter

        1. echo $begrüßung;

          Kann es sein das ich wegen der Zeit die der Download (online) benötigt, die max. Laufzeit
          eines Scripts in php hochsetzen muss? Oder arbeitet das Skript das ab und
          wie lange am ende die Daten brauchen bis sie beim Nutzer ankommen ist egal?

          Normalerweise wird nur die Zeit gezählt, die das Script selbst benötigt. Die Zeit die von Nicht-PHP-Teile des Systems benötigt wird ist egal. Aber prüfe das doch am besten selbst aus, indem du die max_execution_time mal auf 5 Sekunden stellst und eine entsprechend große Datei versendest.

          echo "$verabschiedung $name";