public function downloadfiles(Request $request){ $dir = $request->input('dir', 'uploads/20221103'); if($dir){ $path = public_path($dir); $zip_name = 'files.zip'; $zip = null; $count = 0; //迭代器 $files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); foreach ($files as $name => $file){ //排除文件夹 if (!$file->isDir()) { //是否实例化了ZipArchive对象, if(!$zip) { $zip = new \ZipArchive(); //打开zip包 $zip->open($zip_name, \ZipArchive::CREATE | \ZipArchive::OVERWRITE); } //获取文件的绝对路径 $filePath = $file->getRealPath(); //把文件添加的zip包中 $zip->addFile($filePath, $file->getFilename()); $count++; } } if($zip){ //关闭zip包 $zip->close(); } if($count){ return response()->download($zip_name); }else{ return response('', 404); } }else{ return response('', 404); } }
试一试是否以上代码可以解决你的问题
推荐文章: