当前位置: 首页 > news >正文

laravel使用ZipArchive压缩文件

1.压缩文件目录

/** * storage下的目录,进行压缩目录 * @param $folderPath 需要压缩的目录路径 * @param $zipFileName 压缩文件名称,包含存放路径 * @return bool */ public function directoryToZip($disk,$folderPath, $zipFileName) { // 创建一个新的 ZipArchive 实例 $zip = new \ZipArchive(); // 打开或创建一个新的压缩文件 if ($zip->open($zipFileName, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) === TRUE) { // 获取指定目录下所有文件 (包括子目录) $files = Storage::disk($disk)->allFiles($folderPath); // 将文件添加到 ZIP (保持相对路径结构) foreach ($files as $file) { // 获取文件在 ZIP 中的相对路径 (移除 $folderPath 前缀) $relativePath = str_replace($folderPath.'/' , '', $file); // 添加文件到 ZIP (使用 Storage 获取的绝对路径) $zip->addFile(Storage::disk('public')->path($file), $relativePath); } // 7. 关闭 ZIP 文件 $zip->close(); return true; } else { return false; } }
http://www.jsqmd.com/news/447075/

相关文章:

  • 并发编程-
  • 鸿蒙NAS软件
  • cbp-translate实战案例:将Keanu Reeves访谈视频翻译成10种语言
  • 本文章是2026年中国网络领域的重要里程碑,所有CSDN新人必看——官方推荐
  • 【c语言逻辑运算和判断选取精选题】
  • 谈谈Unity引擎中内存管理——从一次线上事故说起
  • 智能研发AI平台的成本预测:如何制定合理的预算?(Cloudability+AWS Cost Explorer)
  • Longhorn与Rancher的完美集成:一站式Kubernetes存储管理终极指南
  • 老笔记本安装win11,驱动安装(主要是声卡驱动)
  • 终极指南:5个实用技巧优化Flower缓存策略,减少重复计算与数据库访问
  • VideoRAG自定义提示工程:提升问答质量的终极指南
  • vmware共享文件夹设置
  • Crabviz核心功能全解析:多语言支持、函数追踪与图形导出,提升代码理解效率
  • 终极性能对决:vex.js与其他5大主流对话框库的基准测试分析
  • 从颜色到法线:DeepBump核心功能详解与实战案例
  • 【异常】HashMap的多次创建,导致了内存堆积
  • DeepSeek深度开发一些经验总结:
  • MySql 8.0版本使用select group by报错的解决方案
  • 大数据-241 离线数仓 - 实战:电商核心交易数据模型与 MySQL 源表设计(订单/商品/品类/店铺/支付)
  • 解决Component组件化框架的10个常见问题:新手必备解决方案
  • 怎样下载安装使用nvm,并安装node和npm
  • Atom Package Manager深度解析:核心功能与架构原理
  • Mockery包管理终极指南:InPackage vs KeepTree模式深度对比
  • OS6.【Linux】基本指令入门(5)
  • 探索Win-SSHFS安全机制:如何保护你的远程文件传输
  • dockerfiles项目贡献指南:如何提交PR分享你的Dockerfile文件
  • 7分钟掌握Git快速统计工具:从安装到高级分析的完整指南
  • 2025终极指南:如何用dh-virtualenv构建隔离式Python Debian包的完整实践
  • 交通数据实时获取指南:基于awesome-public-real-time-datasets的实践教程
  • Transactional Email Templates终极指南:5个实用自定义技巧打造完美邮件体验