首页 > PHP
TP6生成zip压缩文件
来源:TP课堂 时间:2022-10-20 点击:2221

需求:

提供N个文件的路径,将文件打包压缩成zip文件


解决:

无需要下载任何插件。测试环境本地Ngnix和西部数码主机均可。


代码:

访问down_zip方法,需要注意需要打包的文件,也就是$arr数组中的路径需要物理路径,比如:E:\phpstudy_pro\WWW\www.winter.com\public\upload。

请不要根据tp6路径来设置。


public function createZipFiles($pathArr,$zipName){
        $zip = new \ZipArchive();
        if($zip->open($zipName,\ZipArchive::CREATE|\ZipArchive::OVERWRITE)){
            foreach($pathArr as $file){
                if(!file_exists($file)){
                    continue;
                }
                $zip->addFile($file,basename($file));  //向压缩包中添加文件
            }
            $zip->close();
            return ['code'=>1,'info'=>"创建成功",'path'=>$zipName];
        }else{
            return ['code'=>0,'info'=>'创建失败'];
        }

    }

    public function down_zip()
    {
        $arr = [
                '/home/yujuzgpyzuwjluszng/wwwroot/public/index.jpg',
                ];
        //生成压缩文件名
        $zipName = './upload/'.'quality_'.time().'.zip';
        //arr为服务器文件地址路径  D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\117745275857.png
        $res  = $this->createZipFiles($arr,$zipName);
        halt($res);
        return $res;
    }