Create a zip file using PHP class ZipArchive witho

2019-01-17 15:56发布

问题:

I would like to create a zip file in memory using a ZipArchive (or a native PHP class) and read the content of the file back to the client. Is this possible? If so, how?

The files that I want to zip in this application are a maximum of 15 MB total. I think we should be in good shape memory-wise.

回答1:

Take a look at the following library, it allows creating zip files and returning them as a stream: PHPClasses.org.



回答2:

Try ZipStream (link to GitHub repo, also supports install via Composer).

From original author's website (now dead):

ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.



回答3:

There is another thread talking about this: Manipulate an Archive in memory with PHP (without creating a temporary file on disk)

nettle has suggested to use zip.lib.php from phpmyadmin. I think this is a rather solid solution.

FYI zip.lib.php does not exist anymore, it has been replace by ZipFile.php in the same libraries/ folder.