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

PHP之ZipArchive打包压缩文件

1、Linux 安装 nginx 安装zlib库

2、使用,目前我这边的需求是。
 

1、材料图片、单据图片,分别压缩打包到“材料.zip”和“单据.zip”。
2、“材料.zip”和“单据.zip”在压缩打包到“订单.zip”
3、支持批量导出多个订单的图片信息所有订单的压缩文件,打包压缩到“all.zip”

//定义总的压缩包文件名称
$all_name = 'all.zip';
// 创建ZipArchive对象
$zip_all = new ZipArchive();
if ($zip_all->open($all_name, ZipArchive::CREATE) === TRUE) {//循环查询多个订单信息$sql = "select * from shop_order_piesong where id in (76,80)";$arr = _get_all($sql);foreach ($arr as $i => $rs) {//获取压缩材料图片数组$admin4_pic1 = $rs["admin4_pic1"] ? explode(',', rtrim($rs["admin4_pic1"], ',')) : array();//创建材料压缩包文件$zip_cailiao = new ZipArchive();if ($zip_cailiao->open('cailiao.zip', ZipArchive::CREATE) === TRUE) {// 添加文件到Zip文件中foreach ($admin4_pic1 as $ip => $rsp) {$zip_cailiao->addFile(dirname(dirname(__FILE__)) . $rsp, 'photo' . $ip . '.jpg');}// 关闭Zip文件$zip_cailiao->close();}//创建单据压缩包文件$admin4_pic = $rs["admin4_pic"] ? explode(',', rtrim($rs["admin4_pic"], ',')) : array();// 创建ZipArchive对象$zip_danju = new ZipArchive();if ($zip_danju->open('danju.zip', ZipArchive::CREATE) === TRUE) {// 添加文件到Zip文件中foreach ($admin4_pic as $ip => $rsp) {$zip_danju->addFile(dirname(dirname(__FILE__)) . $rsp, 'photo' . $ip . '.jpg');}// 关闭Zip文件$zip_danju->close();}//整合两个图片压缩包生成新的压缩包$zip_or = new ZipArchive();if ($zip_or->open($rs["danhao"] . '.zip', ZipArchive::CREATE) === TRUE) {$zip_or->addFile(dirname(dirname(__FILE__)) . '/adminIsAdmin/cailiao.zip', '材料.zip');$zip_or->addFile(dirname(dirname(__FILE__)) . '/adminIsAdmin/danju.zip', '单据.zip');// 关闭Zip文件$zip_or->close();}//循环整个订单放入总的压缩包文件$zip_all->addFile(dirname(dirname(__FILE__)) . '/adminIsAdmin/' . $rs["danhao"] . '.zip', $rs["danhao"] . '.zip');}// 关闭Zip文件$zip_all->close();
}//下载Zip文件到本地
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=' . $all_name . '');
header('Content-Length: ' . filesize($all_name));
readfile($all_name);//使用完成后在服务器中删除压缩包文件
unlink("cailiao.zip");
unlink("danju.zip");
unlink($all_name);$sql = "select * from shop_order_piesong where id in (76,80)";
$arr = _get_all($sql);
foreach ($arr as $i => $rs) {unlink($rs["danhao"] . '.zip');
}


 

http://www.lryc.cn/news/142737.html

相关文章:

  • 面试之快速学习C++14
  • 【算法专题突破】双指针 - 快乐数(3)
  • 【javaweb】学习日记Day4 - Maven 依赖管理 Web入门
  • C++信息学奥赛1144:单词翻转
  • qt检查文件夹是否有写权限
  • LSF 安装目录,快速参考 LSF 命令、守护程序、配置文件、日志文件和重要集群配置参数
  • 在Mybatis中写动态sql这些标签:if、where、set、trim、foreach、choose的作用是什么,怎么用?
  • 7 Python的模块和包
  • 【JavaWeb 篇】使用Servlet、JdbcTemplate和Durid连接池实现用户登录功能与测试
  • 【Unity3D赛车游戏】【六】如何在Unity中为汽车添加发动机和手动挡变速?
  • 【Go 基础篇】切片:Go语言中的灵活数据结构
  • 龙芯2K1000LA移植交叉编译环境以及QT
  • javaee spring依赖注入之spel方式
  • 【Java集合学习1】ArrayList集合学习及集合概述分析
  • TouchGFX之调试
  • C# winform加载yolov8模型测试(附例程)
  • 浙大陈越何钦铭数据结构07-图6 旅游规划
  • VUE笔记(七)项目登录
  • 大语言模型之六- LLM之企业私有化部署
  • Python3 列表
  • OpenCV基础知识(8)— 图形检测
  • Java虚拟机
  • c++学习 之 函数重载注意事项
  • 2023-08-27 LeetCode每日一题(合并区间)
  • C#,数值计算——调适数值积分法(adaptive quadrature)的计算方法与源程序
  • 微信小程序发布迭代版本后如何提示用户强制更新新版本
  • 星际争霸之小霸王之小蜜蜂(七)--消失的子弹
  • Hadoop入门机安装hadoop
  • cookie技术介绍
  • 网络摄像头:SparkoCam Crack