2010-11-12 4 views
17

Ich möchte eine Zip-Datei im Speicher mit einem ZipArchive (oder einer nativen PHP-Klasse) erstellen und den Inhalt der Datei zurück zum Client lesen. Ist das möglich? Wenn das so ist, wie?Erstellen Sie eine Zip-Datei mit der PHP-Klasse ZipArchive, ohne die Datei auf die Festplatte zu schreiben?

Die Dateien, die ich in dieser Anwendung zippen möchte, sind insgesamt maximal 15 MB. Ich denke, wir sollten uns gut in Form halten.

+2

Duplizieren: http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly – pestaa

+0

und wie werden Sie mit Zip-Archiven umgehen, die den für PHP verfügbaren Speicher überschreiten? – stillstanding

+0

Bitte lassen Sie diese Frage offen bleiben, http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly wurde in einer Weise gebeten, dass sie nützliche Antworten erhalten könnte. – CLJ

Antwort

3

Werfen Sie einen Blick auf die folgende Bibliothek, es ermöglicht das Erstellen von Zip-Dateien und die Rückgabe als Stream: PHPClasses.org.

+3

Ich möchte etwas, das in der Standard-PHP-Bibliothek nativ ist. – CLJ

+0

Wenn ich fragen darf, gibt es einen Grund dafür? –

+2

Also muss ich keine Abhängigkeiten ziehen und im Laufe der Zeit beibehalten. Wenn es in der Standardbibliothek enthalten ist, muss ich mich nicht um inkompatible Gedanken machen, wenn ich php-Versionen aktualisiere. – CLJ

1

Versuchen Sie ZipStream (Link zu GitHub Repo, unterstützt auch die Installation über Composer).

Von den ursprünglichen Autor der Website (jetzt tot):

ZipStream ist eine Bibliothek für dynamisch dynamische Zip-Dateien Streaming von PHP ohne auf dem Server überhaupt auf die Festplatte zu schreiben.

+0

Ich fand, dass dies ein guter Ersatz für den toten Link ist: https://github.com/maennchen/ZipStream-PHP '$ zip = new \ ZipStream \ ZipStream ('bulk-export.zip'); $ zip-> addFile ('users.csv', '(csv-Daten, die hier durch eine andere Methode generiert werden)'); $ zip-> Ende(); ' – Hans

+0

@Hans wieder aktualisiert, danke! –

Verwandte Themen