php 打包下载zip

mac2024-05-13  28

//这里需要注意该目录是否存在,并且有创建的权限 $zipname = 'path/test.zip' //这是要打包的文件地址数组 $files = array("test1.txt","test2.pdf"); $zip = new \ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释 $res = $zip->open($zipname, \ZipArchive::CREATE); if ($res === TRUE) { foreach ($files as $file) { //这里直接用原文件的名字进行打包,也可以直接命名,需要注意如果文件名字一样会导致后面文件覆盖前面的文件,所以建议重新命名 $new_filename = substr($file, strrpos($file, '/') + 1);//文件名 $zip->addFile($file, $new_filename);//$file 文件路径 } } //关闭文件 $zip->close(); //这里是下载zip文件 header("Content-Type: application/zip"); header("Content-Transfer-Encoding: Binary"); header("Content-Length: " . filesize($zipname)); header("Content-Disposition: attachment; filename=\"" . basename($zipname) . "\""); readfile($zipname); exit;

注意地方: $zip = new ZipArchive();//这样子会报错 $zip = new \ZipArchive();//这样就成功

最新回复(0)