PHP使用ZipArchive批量打包压缩文件并下载
1.PHP 二维数组相关函数:二维数组指定key排序,二维数组转一维数组,两个二维数组取差集,对象转数组,判断元素是否在多维数组中2.PHP获取时间戳、获取天周月的起始时间、指定时间所在周、指定时间的各个周等相关函数
3.PHP使用ZipArchive批量打包压缩文件并下载
4.基于php大文件分片上传至七牛云,支持断点续传,,带进度条5.基于php+webuploader的大文件分片上传,支持断点续传,带进度条6.PHP PDF转图片7.PHP 通过两个日期计算年龄8.PHP使用pdfparser实现对PDF转换成本文9.php获取图片的主要颜色值RGB10.PHP实现无限级分类11.ThinkPHP5浏览器关闭,继续执行php脚本12.ThinkPHP5权限管理13.PHP+Redis实现排行榜14.PHP操作Redis常用命令15.Thinkphp5+Redis实现商品秒杀16.ThinkPHP5+Redis实现购物车17.用PHP实现SSO单点登录系统接入功能与分析18.PHP自动加载composer下载的类库19.Windows上composer安装20.ThinkPHP5分布式数据库读写分离21.THINKPHP5截取标题长度并加省略号22.ThinkPHP5+WebSocket+MySQL实现聊天室23.php+websocket 实现聊天室24.thinkphp实现用户注册时邮箱激活25.Thinkphp5+PHPMailer实现发送邮件26.thinkphp+jquery实现两级评论回复效果27.PHP开发API接口签名生成及验证28.php 使用 CURL 获取数据29.PHP正则表达式常用例子30.微信小程序+php 授权登陆,完整代码31.thinkphp5 + barcode 生成条形码32.PHP查询附近的人及其距离的实现方法33.thinkPHP+LayUI 懒加载实现34.php与阿里云短信接口接入35.php日期格式化方法详解36.php 根据URL下载远程图片、压缩包、pdf等文件到本地37.php+js实现极验,拖动滑块验证码验证表单38.php无限分类方法类39.php的多功能文件操作类40.计算地图上两点间的距离PHP类41.php的微信公众平台开发接口类42.身份证验证PHP类43.php使用fullcalendar日历插件44.php通过某个日期段的周几,获取选中周几对应的日期45.thinkphp 使用paginate分页搜索带参数46.php对二维数据排序47.php获取指定月份月初和月末的时间戳48.PHP批量导出数据为excel表格49.php实现同一时间内一个账户只允许在一个终端登陆50.ThinkPHP5+Layui实现图片上传加预览51.php+layui实现图片上传与预览52.PHP实现无限级分类53.PHP获取本周的每一天的时间54.php生成word,并下载55.PHP实现大转盘抽奖算法56.判断当前浏览器是不是微信浏览器57.ThinkPHP5下自己写日志58.Bootstrap+PHP实现多图上传59.ThinkPHP5事务回滚60.php获取本月、上月、上上月、今日、昨日、上周的起始时间61.ThinkPHP5自定义分页样式62.thinkphp5+qrcode生成二维码63.ThinkPHP_5对数据库的CURL操作64.PHP异常处理65.ThinkPHP实现登陆功能66.使用ThinkPHP实现分页功能67.使用ThinkPHP实现生成缩略图及显示68.使用ThinkPHP实现生成/校验验证码功能69.使用ThinkPHP实现附件上传70.ThinkPHP中create()方法自动验证表单信息71.PHP实现文件下载72.PHP实现批量删除(封装)73.php简单实现二级联动74.PHP中文件操作(2)-- 写文件75.PHP中文件操作(1)--打开/读取文件76.PHP中常用的魔术方法77.PHP生成缩略图(3)--封装类78.PHP生成缩略图(2)--等比缩略图79.PHP生成缩略图(1)--简单缩略图80.调用天气预报接口81.使用JSON实现分页82.使用AJAX实现分页83.PHP中NOTICE错误常见解决方法84.PHP解决中文乱码85.PHP中类和对象的相关函数86.PHP 绘制验证码87.PHP文件上传,下载,Sql工具类!88.PHP中Session的使用89.PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆90.PHP 类文件的自动加载机制 __autoload()PHP使用ZipArchive批量打包压缩文件,并下载。使用php自带的ZipArchive类,可以压缩或解压文件。
首先需要确定已经安装了zip扩展,如果没有安装,请先安装,下载:http://pecl.php.net/package/zip (相应php版本的zip包)
先把需要下载的文件路径找出来并组成数组,如下
Array
(
[0] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\aa.pdf
[1] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\bb.pdf
[2] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\cc.pdf
[3] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\dd.pdf
[4] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\ee.pdf
[5] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\ff.pdf
[6] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\gg.pdf
)
逻辑:先把文件压缩到指定目录(自定义$addonFile目录下),然后再把文件输出下载
代码如下:
$files = ('E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\aa.pdf','E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\bb.pdf','E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\cc.pdf','E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\dd.pdf'); // 压缩文件名 $addonFile = ROOT_PATH.'public'.DS.'uploads'.DS.'downzip'.DS.'学科评估_【'.$info['hospital'].'_'.$this->year. '年】.zip'; $zip = new \ZipArchive; //新建zip压缩包 $zip->open($addonFile,\ZipArchive::CREATE | \ZipArchive::OVERWRITE); //把文件一张一张加进去压缩 foreach ($files as $key => $value) { $zip->addFile($value,basename($value)); } //打包zip $zip->close(); header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename='.basename($addonFile)); //文件名 header("Content-Type: application/force-download"); header("Content-Transfer-Encoding: binary"); header('Content-Length: '. filesize($addonFile)); //告诉浏览器,文件大小 readfile($addonFile);
——现在的努力,只为小时候吹过的牛逼! ——
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现