不清楚 fastadmin 自定義搜尋 帶入 export 的 可以看上一篇
/** * 匯出zip */ public function export(){ $filter = $this->request->param("filter"); list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $path = str_replace('\\','/',realpath(dirname(__FILE__).'/../../../../'))."/public/file/qrcode/".date('Ymd')."/"; $zip_path = str_replace('\\','/',realpath(dirname(__FILE__).'/../../../../'))."/public/file/qrcode/zip"; if(!file_exists($path)){ mkdir($path,0777,true); } $list = $this->model ->where($where) ->order($sort, $order) ->select(); if(empty($list)){ return json(array('code'=>1,'error'=>"暫無記錄")); } $arr = []; foreach ($list as $key => $val) { if($val['qrcode_image'] != ""){ // 遍歷每個,生成對應的圖片檔案並新增到資料夾 $imageData = @file_get_contents(config('site.api_url').$val['qrcode_image']); $imageName = $path . $val['qrcode'] . ".png"; file_put_contents($imageName, $imageData); } } if(!file_exists($zip_path)){ mkdir($zip_path,0777,true); } $zip_name = date('YmdHis').rand(1000,9999); //$url = "/file/qrcode/zip/".$zip_name.".zip"; Makezip::zip($path,$zip_path."/".$zip_name.".zip"); // // 輸出到瀏覽器下載 header('Content-Type: application/zip'); header('Content-Transfer-Encoding: Binary'); header('Content-disposition: attachment; filename='.$zip_name.".zip"); header('Content-Length: ' . filesize($zip_path."/".$zip_name.".zip")); // 這兩行很重要,不然可能會出現解壓的時候提示檔案損壞 ob_clean(); flush(); readfile($zip_path."/".$zip_name.".zip"); // // 刪除伺服器上的ZIP檔案(可選) // unlink($zip_path."/".$zip_name.".zip"); }