ThinkPHP中使用ZipArchive 生成壓縮包

壓縮多個文件

壓縮多個文件,其實就是addFile執行多次,可以通過數組的遍歷來實現。
實現同一個目錄下將多個文件壓縮成一個zip壓縮包

封裝壓縮文件函數

//壓縮文件成zip格式
    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'=>'創建失敗'];
        }
    }

控制器調用

/**
     * 質檢單壓縮導出
     * @auth true
     */
    public function down_zip()
    {
        $arr = [
                'D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\1094567064261122.png',
                'D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\117745275857.png'
                ];
        //生成壓縮文件名
        $zipName = './upload/temp/'.'quality_'.time().'.zip';
        //arr爲服務器文件地址路徑  D:\phpstudy_pro\WWW\rht_data\public\upload\medicine_order_audit\117745275857.png
        $res  = $this->login->createZipFiles($arr,$zipName);
        halt($res);
        return $res;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章