PHP5.2+内置支持多文件打包,使用ZipArchive类。 要实现多文件打包下载,分两步,第一步是使用ZipArchive压缩多个文件,然后使用header指令生成下载操作。 第1步为了递归添加目录下所有子目录和文件,需要派生一个类,参考: 1.http://php.net/manual/en/cla
PHP5.2+内置支持多文件打包,使用ZipArchive类。
要实现多文件打包下载,分两步,第一步是使用ZipArchive压缩多个文件,然后使用header指令生成下载操作。
第1步为了递归添加目录下所有子目录和文件,需要派生一个类,参考:
1. http://php.net/manual/en/class.ziparchive.php#110719
第2步结合readfile来读取并输出文件到用户端,参考:
2. http://php.net/manual/zh/function.readfile.php#refsect1-function.readfile-examples
如果出现下载的zip文件非法,那么可能是在stream这个文件时,没有执行ob_clean(),导致前期输出缓冲被意外添加到文件中。
by iefreer