Ankündigung

Einklappen
Keine Ankündigung bisher.

Zip-Dateien schreiben

Einklappen

Neue Werbung 2019

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

  • Zip-Dateien schreiben

    Hallo,

    ich habe mir eine Klasse geladen, um Zip-Dateien zu erstellen. Das funktioniert auch ganz gut, solange kleine Dateien gepackt werden. Bei größeren Dateien (wofür ich das Zippen ja verwenden möchte) krieg ich die Fehlermeldung

    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 219889120 bytes) in /srv/www/htdocs/web10/html/ziptest/archive.php on line 630

    , folglich kann das Skript nicht mehr als 8MB benutzen. Irgendwie muss man doch erreichen können, dass die Zipdatei direkt auf die Platte geschrieben wird und nicht alles in der PHP-Datei rumhängt. Wie geht das?
    Ich habe keinen Rootserver (geht also keine Veränderung der php.ini).

    Die Klasse habe ich hier gespeichert.
    Mein Script ist folgendes:

    PHP-Code:
    <?php

    require("archive.php");

    $example = new zip_file("example.zip");

    $example->add_files("../testordner");

    $example->create_archive();

    if (
    count($test->errors) > 0){
    print (
    "Nicht erfolgreich!");
    }else{
    print (
    "Erfolgreich!");
    }

    ?>
    Vielen Dank für eure Antworten :wink:

  • #2
    Es geht ja nicht drum das "alles in der PHP-Datei rumhängt" sondern darum wie viel Arbeitsspeicher gerade von deinem PHP Prozess genutzt wird. Und der ist eben auf 8mb limitiert um genau solche Aktionen wie du sie vor hast zu unterbinden.

    Kommentar


    • #3
      Ja, meine Frage ist ja auch, wie ich die Datei sofort schreiben kann und sie nicht erst ganz im Arbeitsspeicher läd.

      Kommentar


      • #4
        nicht möglich.

        Lässt es deine Klasse zu Dateien nachträglich in die zip datei einzufügen? Wenn ja könntest du jede datei einzeln in das archiv verbannen und nicht einen ganzen Ordner auf einmal.
        MfG
        spoi

        Kommentar

        Lädt...
        X