Sicherer Download großer Dateien

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

  • Sicherer Download großer Dateien

    Mit diesem Programm
    PHP-Code:
    <?php

    header
    ("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"datei.zip\"");

    // Datei ausgeben.
    readfile($ausserhalbDocRoot.$filename);

    ?>
    ist es ja möglich Dateien, die sich ausserhalb des DocRoot befinden, also nicht direkt über's WWW zugreifbar sind, zum Download anzubieten.

    Hat jemand Erfahrung, wie sich diese Methode mit größeren Dateien 50-60 MB verhält? Gibt's da Probleme?

    Gibt es andere Möglichkeiten für einen sicheren Download, mit der ich jede gedownloadete Datei erfassen kann?

  • #2
    von der sache her sollte es keine probleme geben.

    du kannst das aber ruhig mal testen.

    EDIT:
    das script solltest du dann aber nicht mehr mit den normalen 30sec laufen lassen. bei langsamen verbindungen sind die schnell erreicht.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Danke für die schnelle Antwort.

      Die Scriptlaufzeit ist nicht das Problem.
      Das Script läuft nur solange, bis die Datei komplett (in den Speicher des Servers) eingelesen ist.

      Habe mich wohl eben nicht ganz klar ausgedrückt.
      Was ich mich frage:

      Gibt es Unterschiede zwischen einem "normalen" Download und einem Download auf die oben beschriebene Art?

      Kommentar


      • #4
        was hat das mit dem speicher zu tun?
        er liest das file und schiebt es zum user.....

        wenn die datei sehr groß ist, braucht das php-script etwas länger. hat der user noch eine langsame leitung, braucht das script noch länger....

        der unterschied ist... du verwendest oben php. ein normaler download geht übers htt- oder ft- protokoll
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Der Download geht so oder so über HTTP.

          Aber das entscheidene im Script ist doch

          readfile(...);

          Das dauert bei jedem Benutzer gleich lange und braucht gleich viel Speicher, da es ja auf dem Server ausgeführt wird.

          Aber readfile() würde jetzt doch 50MB in den Hauptspeicher des Server laden. Dann ist das Script fertig. Aber der Hauptspeicher ist noch solange mit den 50MB belegt, bis der Download beendet ist.

          Wenn ich 50MB direkt über HTTP runterlade, wird die Datei dann auch komplett in den Speicher geladen??

          Kommentar


          • #6
            ich denke/meine, dass readfile auch nur häppchenweise das zeugs reinzieht, wenn er nicht schneller die daten wieder abgeben kann. (an den user)

            teste das einfach mal....
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Hmm, habe mal eine 20MB Datei getestet, auf einem schnellen Server mit viel Speicher.

              Sowohl Speicher als auch CPU Auslastung waren gleich 0, bei beiden Methoden.
              Na ja, wird die Praxis zeigen, ob es vielleicht doch noch einen Nachteil gibt

              Auf jeden Fall war das PHP-Script nach einer Sekunde beendet.

              Kommentar


              • #8
                teste das mal mit 56KBit oder ISDN

                mit dsl oder lokalen netzwerk ist der speed ja logisch .....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Na ja, aber selbst DSL schaft 20MB nicht in einer Sekunde (leider )

                  Kommentar


                  • #10
                    wohl war ....

                    aber ich hoffe, du weisst worauf ich hinaus wollte....
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X