利用php实现将文件批量压缩打包下载,这个过程中将使用到 ZipArchive 这个类,注意使用该类之前,linux需开启zlib,windows需取消php_zip.dll前的注释。下面直接给出一个简单的将文件压缩为 zip 格式的示例。具体用法请查询php相关文档。
<?php $filename='test.zip'; //最终生成的文件名(含路径) if(file_exists($filename)){ unlink($filename); } //重新生成文件 $zip=new ZipArchive(); if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){ exit('无法打开文件,或者文件创建失败'); } $datalist=array('try.php','zip_class.php'); foreach($datalist as $val){ if(file_exists($val)){ $zip->addFile($val); } } $zip->close();//关闭 if(!file_exists($filename)){ exit('无法找到文件'); //即使创建,仍有可能失败 }
备注:
//向压缩包中添加文件(addFile的第二参数表示,替换的名称,若不写则按照前面的命名,当然如果是带目录,在压缩包中也会生成一个文件夹)
$zip->addFile("./down.php","testfromfile.php");
$zip->addFile('img/images-3.jpg','new.jpg');
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";