多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#### 压缩文件夹 ```php /** * 封装压缩文件 * @param $name * 作者:糜家智 * 时间:2021/8/19 15:24 */ public function zipFile($name){ $zip = new \ZipArchive(); $file_name = ROOT_PATH.'public'.DS.'uploads'.DS.$name; //压缩文件名 $filename = 'uploads/download'; if ($zip->open($filename, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { if (file_exists($file_name)) { Zip::addFileToZip($file_name, $zip);//执行递归压缩目录的操作 } else { throw new NotFoundHttpException('该目录不存在或被删除'); } } //打包zip $zip->close(); } ``` ```php class Zip extends Controller { public static function addFileToZip($path, &$zip,$root='') { $handler = opendir($path); //打开当前文件夹由$path指定。 !$root && $root = $path; while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") {//文件夹文件名字为'.'和‘..’,不要对他们进行操作 if (is_dir($path . "/" . $filename)) {// 如果读取的某个对象是文件夹,则递归 self::addFileToZip($path . "/" . $filename, $zip, $root); } else { //将文件加入zip对象 $pathFilename=$path . "/" . $filename; $zip->addFile($pathFilename, str_replace($root.'/','',$pathFilename)); } } } @closedir($path); } } ```