Keine zip-Downloads > 10 MB

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

  • Keine zip-Downloads > 10 MB

    Hallo liebe Leute.

    In meiner Website gibt es viele Installationsarchive für Calamus-User zum Download, die natürlich über ein PHP-Script angestoßen werden.

    Ich finde momentan keine Lösung des Problems, daß das Downloaden nicht klappt, wenn zip-Archive > 10 MB sind, z.B. auf dieser Downloadseite .

    Die EXE-Dateien auf derselben Seite werden mit absolut demselben Script rausgeschickt an den Browser, aber die funktionieren. Kleinere ZIP-Dateien als 10 MB natürlich auch.

    Der entsprechende Script-Code sieht so aus:

    <?php
    $fp = @fopen("$myhome$get","rb");
    if (!$fp)
    {
    header("HTTP/1.0 404 Not Found");
    exit;
    }

    header("Content-Type: application/octet-stream");
    header("Content-type: application/x-download");
    header("Content-Length: $fsize");
    header("Content-Disposition: attachment; filename=\"$get\"");
    header("Pragma: no-cache");

    while(!feof($fp))
    {
    $buff = fread($fp,32768);
    echo $buff;
    }
    fflush($fp);
    fclose($fp);
    exit;
    ?>

    Kann mir jemand einen Tip geben, ob sich dieses Problem überhaupt über PHP lösen läßt?

    (Meine php.ini im Apachen erlaubt 42 MB große Up- und Downloads.)
    PHP Version 7.0.8-0ubuntu0.16.04.2

  • #2
    und was steht in
    memory_limit in php.ini ?
    standart ist 8MB also muss es auch geändert werden, da es sich nich um einfache download handelt, sondern um ein script, der memory_limit überschreitet hat.
    Slava
    bituniverse.com

    Kommentar


    • #3
      @Slava:
      In php.ini steht für memory_limit 42M, wie ich auch schon in meinem ersten Beitrag schrieb. Vielleicht war es nicht ganz deutlich.
      PHP Version 7.0.8-0ubuntu0.16.04.2

      Kommentar


      • #4
        Original geschrieben von UlfDunkel
        @Slava:
        In php.ini steht für memory_limit 42M, wie ich auch schon in meinem ersten Beitrag schrieb. Vielleicht war es nicht ganz deutlich.
        war leider nicht ganz deutlich, da der wort memory_limit nicht direkt aufgetaucht hat, obwohl ich das natürlich raten könnte.
        Ich kenne leider keine andere einstellungen, die dafür verantwortlich seein können.
        Kann sein, dass zeitlimit bei seite-aufbau überschritten wird?
        Slava
        bituniverse.com

        Kommentar


        • #5
          Das erscheint mir unlogisch, da ja keine Seite aufgebaut wird, sondern normalerweise die Daten der zip-Datei direkt ins Download-Management des Browsers geschickt werden.

          Und ... bei EXE-Dateien > 10 MB klappt's ja auch.

          Ich könnte mir vorstellen, daß es mit meiner PHP-Version zu tun hat, denn ich habe vor einiger Zeit von 4.1.x auf 4.3.x upgedated - und vorher ging's auch mit größeren zip-Dateien.
          PHP Version 7.0.8-0ubuntu0.16.04.2

          Kommentar


          • #6
            Original geschrieben von UlfDunkel
            Das erscheint mir unlogisch, da ja keine Seite aufgebaut wird, sondern normalerweise die Daten der zip-Datei direkt ins Download-Management des Browsers geschickt werden.
            Nein!!!
            es wird richtig aufgebaut, da dein script das mit echo in einer schleife ausgibt.
            Und bei normalen Download werden die Daten direkt von server zubereitet .
            in jedem Fall ist bei deiner Variante zeitlimit relevant.
            Zuletzt geändert von Slava; 26.06.2006, 19:06.
            Slava
            bituniverse.com

            Kommentar


            • #7
              Warum ist dann bei gleichgroßen und größeren EXE-Dateien überhaupt kein Problem zu beobachten?
              PHP Version 7.0.8-0ubuntu0.16.04.2

              Kommentar


              • #8
                das weis ich echt nicht!
                logisch gesehen ist es egal, ob es exe oder auch was anderes ist, aber es sieht so aus, ob es bei lesen von .zip in deinem Fall irgendwie zu verzogerungen kommt.
                sorry, dass ich mit meinen Ideen am ende bin.
                versuch aber zur Testzwecke max_execution_time einwenig erhöhen.
                Slava
                bituniverse.com

                Kommentar


                • #9
                  @Slava:
                  Vielen Dank für die Zeit, die Du Dir für mein Problem genommen hast. max_execution_time ist bei mir auf 600 sec, das sind 10 Minuten. Ich glaube nicht, daß es damit etwas zu tun hat, weil ja dann eben auch die EXE-Dateien Probleme machen müßten.

                  Und, wie man mit jedem Browser auf meiner o.g. URL beim Anklicken von "Download" einer solchen ZIP-Datei sehen kann, wird ja direkt eine Seite aufgebaut mit dem binären Salat der ZIP-Datei. Das hat mit der max_execution_time vermutlich überhaupt nichts zu tun.

                  Weiß hier sonst noch jemand Rat zu diesem Problem?
                  PHP Version 7.0.8-0ubuntu0.16.04.2

                  Kommentar


                  • #10
                    Komisch...
                    Wenn ich den Header der Zips überprüfe kommt immer
                    Content-Type: text/plain
                    und wenn ich die EXE
                    Content-Type: application/x-download
                    d.h. das der Header bei den Zipps nochmal dannach verändert wird.

                    Kommentar


                    • #11
                      Ich kann den Fehler so ohne weiteres auch nicht erklären.
                      Sicherlich hast du es schon mit verschiedenen Zips > 10MB versucht, nicht nur mit einer einzigen.
                      Und das Serverlog hast du auch schon konsultiert.

                      Zur weiteren Eingrenzung des Fehlers könntest du
                      - readfile
                      - direkten Download ohne PHP
                      - andere Header
                      - verschieden große Zips (9, 10, 11, ... 20MB)
                      - leere Zips
                      - anders komprimierte Zips (Method)
                      - umbenannte Zips (.zip -> .exe)
                      - umbenannte andere (.exe -> .zip) > 10MB
                      testen.
                      Oder auch die "Stelle" (Offset des Datenstroms) untersuchen, an der der Download abbricht. Ist es immer die gleiche? Welche, was würde im Strom folgen?

                      EDIT:
                      text/plain? Serverkonfig checken, da wird ein Typ forciert!

                      Kommentar


                      • #12
                        Simon94: Wie und wo hast Du den Header überprüft?

                        edit: Gerade in meiner httpd.conf nachgesehen: Dort steht nur "DefaultType text/plain" und die entsprechend bekannte Erklärung, daß man bei binary stuff eben "application/octet-stream" usw. nutzen soll.

                        Für mich klingt das alles richtig, da es ja sonst auch mit kleineren ZIP-Dateien Probleme geben müßte, oder nicht?
                        Zuletzt geändert von UlfDunkel; 26.06.2006, 22:58.
                        PHP Version 7.0.8-0ubuntu0.16.04.2

                        Kommentar


                        • #13
                          Such mal bei google nach http header auslesen
                          dann hab ich einmal die URL der .EXE genommen und einmal die .Zip


                          Edit: Müsste eigendlich richtig sein.
                          Zuletzt geändert von Simon94; 26.06.2006, 23:03.

                          Kommentar


                          • #14
                            Header kannst du dir hier anschauen: http://web-sniffer.net/

                            Kommentar


                            • #15
                              Das Tool zum Header-Auslesen ist wirklich praktisch. Bleibt die Frage, wer da "Transfer-Encoding: chunked" reinschreibt?
                              PHP Version 7.0.8-0ubuntu0.16.04.2

                              Kommentar

                              Lädt...
                              X