Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Zip Download Script und Datei Größen anzeigen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Zip Download Script und Datei Größen anzeigen

    Hallo

    Ich habe zwei Probleme, hinter die ich net ganz steig

    Problem 1:

    Ich hab ein Script, das Dateien zippt und zum Download freigibt. Das Script geht eigendlich, er downloaded zwar eine Zip, aber die Datei ist entweder leer oder "kein gültiges Archiv".
    Ich verwende folgenden Code, in dem der Dateiname per Variable übergeben wird. Die Variable funktioniert, und gibt auch den richtigen Dateinamen und Pfad wieder (test mit echo):

    PHP-Code:
       <?
     $n= $_GET["name"]; //Variable wird richtig eingelesen

     ob_start();
     require('zip.lib.php');

     $zipfile = new zipfile($n.'.zip'); //Variable wird richtig übergeben und erstellt den richtigen Dateinamen
       $zipfile->addFileAndRead('./pf/'.$n.'.dat'); //Pfadangaben stimmen :-)
       $zipfile->addFileAndRead('./pf/'.$n.'_2.dat');
       $zipfile->addFileAndRead('./pf/'.$n.'_3.dat');
       $zipfile->addFileAndRead('./pf/'.$n.'_4.dat');

     echo $zipfile->file();
    ?>
    Kann es vielleicht sein, das es an den Größen der Dateien liegt? Gibt es in dem Fall eine Begrenzung oder so?



    Problem 2:

    Ich versuche bei den Dateien, neben einem Bild und einer Beschreibung, die Größe der Datei anzeigen zu lassen. Das geht eigendlich auch , zumindest bei den meisten Dateien. Bei einigen, obwohl der richtige Pfad und der Dateiname, der auch hier wieder als Variable übergeben wird, stimmen, zeigt es die Größe nicht an. Woran kann das liegen? Wenns keine Anzeigen würd, wäre der script falsch, aber es sind weniger als 40%, bei denen es keine Größe anzeigt. Hier sieht mein Code folgendermaßen aus:

    PHP-Code:
    $file "pf/".$n.".dat";

    $ftp_server 'xx.xxx.xxx.xx';
    $ftp_user_name 'xxx';
    $ftp_user_pass 'xxx';

    $conn_id ftp_connect($ftp_server);
    $login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);
        
    $res ftp_size($conn_id$file)/1000000;
    $zahl number_format($res,2,".",",");
            
    if (
    $zahl >= 1) {$groesse "$zahl MB";} else {$groesse "o.A.";}

    echo 
    $groesse
    Als Zusatzinfo, falls das von Bedeutung sein sollte, meine Dateien sind von zwischen 8 und 40MB groß, wobei der Großteil bei etwa 10 bis 18 MB liegt


    Ich bedanke mich schon mal für die Antworten

    MfG BigSanch

  • #2
    Header gesendet?

    Kommentar


    • #3
      40MB könnten schon mal ein timeout erzeugen ?!

      Kommentar


      • #4
        Moin

        Danke fürs schnelle Antworten

        Zitat von tomtaz Beitrag anzeigen
        Header gesendet?
        Geh ich von aus, wenn das script ja eigendlich funzt, es sind nur eineige Dateien, bei denen es nicht geht


        Zitat von nikosch Beitrag anzeigen
        40MB könnten schon mal ein timeout erzeugen ?!
        Hmmm. Ich hab mal einige getestet und versucht so herunterzuladen, aber wenn ich mich nicht irre, wenn es tatsächlich an der Größe liegt, dann scheint es schon ab 7MB nicht meh zu gehen, die meisten die darunter sind, gehen zum daownloaden, und sind dann auch im Archiv

        Wo kann man denn sowas rausfinden? Und hat jemand ne Idee, wie ich das beheben kann? Kann ich, falls es ab 7 oder 8 MB zu einem timeout kommen sollte, was mir etwas seltsam vorkommt, diesen umgehen?
        Ich habe auch das Script, das packt noch mal angesehen, da steht definitiev nichts über ne filebegrenzung oder timeout ab MB drin

        Hülfäääääää

        MfG BigSanch

        Kommentar


        • #5
          Nun du könntest mal error_reporting( E_ALL ); Am Anfang deines Scriptes setzen. Wenn du deine Fehlermeldung erhälst dann weißt du wo das Problem liegt.

          Ich tippe dann, wenn es nicht der Header ist, dass eventuell zu wenig Speicher vorliegt oder ein Timeout erzeugt wird. Beide Fehler kannst du mit Error Reporting sichtbar machen.

          Kommentar


          • #6
            Hi an alle und danke an alle Antworten, aber das Problem hat sich erledigt

            Es liegt an der Einstellung des Servers, den ich da habe, die unterstützen so großen Datenaustausch net, das war das Problem die ganze Zei, bin jetzt dran dass die die PHP.ini für mich ändern mal sehen was die sagen

            MfG BigSanch

            Kommentar

            Lädt...
            X