2010-11-12 13 views
17

Vorrei creare un file zip in memoria utilizzando un ZipArchive (o una classe PHP nativa) e leggere il contenuto del file sul client. È possibile? Se é cosi, come?Creare un file zip usando la classe PHP ZipArchive senza scrivere il file sul disco?

I file che voglio comprimere in questa applicazione sono un massimo di 15 MB totali. Penso che dovremmo essere in buone condizioni di memoria.

+2

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

+0

e come gestirai gli archivi zip che superano la quantità di memoria disponibile per PHP? – stillstanding

+0

si prega di lasciare questa domanda rimane aperta, http://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly è stato chiesto in un modo che potrebbe ricevere risposte utili. – CLJ

risposta

3

Dai un'occhiata alla seguente libreria, che consente di creare file zip e restituirli come stream: PHPClasses.org.

+3

Vorrei qualcosa che è nativo alla libreria php standard. – CLJ

+0

Se posso chiedere, c'è una ragione per questo? –

+2

Quindi non devo trascinare una dipendenza e mantenerla nel tempo. Se è incluso nella libreria standard, non dovrò preoccuparmi di incompatibilità quando eseguo l'upgrade delle versioni di php. – CLJ

1

Provare ZipStream (collegamento al repository GitHub, supporta anche l'installazione tramite Composer).

Dal sito dell'autore originale (ora morto):

ZipStream è una libreria per lo streaming in modo dinamico i file zip dinamici da PHP senza scrivere sul disco a tutti sul server.

+0

Ho trovato che questo è un buon sostituto per il collegamento morto: https://github.com/maennchen/ZipStream-PHP '$ zip = nuovo \ ZipStream \ ZipStream ('bulk-export.zip'); $ zip-> addFile ('users.csv', '(dati csv generati da un altro metodo qui)'); $ zip-> finish(); ' – Hans

+0

@Hans aggiornato di nuovo, grazie! –

Problemi correlati