2010-11-12 16 views
17

Chciałbym utworzyć plik zip w pamięci za pomocą ZipArchive (lub natywnej klasy PHP) i odczytać zawartość pliku z powrotem do klienta. czy to możliwe? Jeśli tak to jak?Tworzenie pliku zip przy użyciu klasy PHP ZipArchive bez zapisywania pliku na dysk?

Pliki, które chcę skompresować w tej aplikacji, nie przekraczają 15 MB. Myślę, że powinniśmy mieć dobrą pamięć.

+2

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

+0

i jak będziesz obsługiwał archiwa zip, które przekraczają ilość pamięci dostępnej dla PHP? – stillstanding

+0

proszę pozwolić, aby to pytanie pozostało otwarte, http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly został zapytany w taki sposób, aby mógł otrzymać przydatne odpowiedzi. – CLJ

Odpowiedz

3

Zobacz bibliotekę, która pozwala tworzyć pliki zip i zwracać je jako strumień: PHPClasses.org.

+3

Chciałbym coś, co pochodzi od standardowej biblioteki php. – CLJ

+0

Jeśli mogę zapytać, czy istnieje ku temu powód? –

+2

Więc nie muszę przeciągać zależności i utrzymywać ją z czasem. Jeśli jest dołączony do standardowej biblioteki, nie będę musiał się martwić o to, gdy uaktualniam wersje php. – CLJ

1

Wypróbuj ZipStream (link do repozytorium GitHub, obsługuje również instalację przez Composer).

Od strony oryginalnego autora (teraz martwej):

ZipStream jest biblioteką dla dynamicznie strumieniowe dynamiczne pliki zip z PHP bez zapisywania na dysku w ogóle na serwerze.

+0

Znalazłem dobry zamiennik martwego łącza: https://github.com/maennchen/ZipStream-PHP '$ zip = new \ ZipStream \ ZipStream ('bulk-export.zip'); $ zip-> addFile ("users.csv", "(dane CSV generowane tutaj inną metodą)"); $ zip-> finish(); ' – Hans

+0

@Hans updated again, thanks! –

Powiązane problemy