PHP实现打包zip并下载功能


Posted in PHP onJune 12, 2018

具体代码如下所示:

$file_template = FCPATH.'canddata/cand_picture.zip';//在此之前你的项目目录中必须新建一个空的zip包(必须存在)
$downname = $card.'.zip';//你即将打包的zip文件名称
$file_name = FCPATH.'canddata/'.$card.'.zip';//把你打包后zip所存放的目录
$result = copy( $file_template, $file_name );//把原来项目目录存在的zip复制一份新的到另外一个目录并重命名(可以在原来的目录)
$zip = new ZipArchive();//新建一个对象
if ($zip->open($file_name, ZipArchive::CREATE) === TRUE) { //打开你复制过后空的zip包
$zip->addEmptyDir($card);//在zip压缩包中建一个空文件夹,成功时返回 TRUE, 或者在失败时返回 FALSE
//下面是我的场景业务处理,可根据自己的场景需要去处理(我的是将所有的图片打包)
$i = 1;
foreach ($cand_photo as $key3 => $value3) {
$file_ext = explode('.',$value3['cand_face']);//获取到图片的后缀名
$zip->addFromString($card.'/'.$card.'_'.$i.'.'.$file_ext[3] , file_get_contents($value3['cand_face']));//(图片的重命名,获取到图片的二进制流)
$i++;
}
$zip->close();
$fp=fopen($file_name,"r"); 
$file_size=filesize($file_name);//获取文件的字节
//下载文件需要用到的头 
Header("Content-type: application/octet-stream"); 
Header("Accept-Ranges: bytes"); 
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=$downname"); 
$buffer=1024; //设置一次读取的字节数,每读取一次,就输出数据(即返回给浏览器) 
$file_count=0; //读取的总字节数 
//向浏览器返回数据 如果下载完成就停止输出,如果未下载完成就一直在输出。根据文件的字节大小判断是否下载完成
while(!feof($fp) && $file_count<$file_size){  
        $file_con=fread($fp,$buffer);  
        $file_count+=$buffer;  
        echo $file_con;  
    } 
fclose($fp); 
//下载完成后删除压缩包,临时文件夹 
if($file_count >= $file_size) { 
unlink($file_name); 
}
}

总结

以上所述是小编给大家介绍的PHP实现打包zip并下载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
在普通HTTP上安全地传输密码
Jul 21 PHP
php流量统计功能的实现代码
Sep 29 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
May 08 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 #PHP
PHP+redis实现的悲观锁机制示例
Jun 12 #PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 #PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 #PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 #PHP
Laravel框架路由设置与使用示例
Jun 12 #PHP
Laravel框架生命周期与原理分析
Jun 12 #PHP
You might like
PHP使用者状态管理功能的应用
2006/10/09 PHP
php的ajax简单实例
2014/02/27 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
js Event对象的5种坐标
2011/09/12 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
python简单实现基数排序算法
2015/05/16 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
python 字符串和整数的转换方法
2018/06/25 Python
Python基本socket通信控制操作示例
2019/01/30 Python
python生成带有表格的图片实例
2019/02/03 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Python如何将函数值赋给变量
2020/04/28 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
eBay荷兰购物网站:eBay.nl
2020/06/26 全球购物
会议邀请书范文
2014/02/02 职场文书
文员岗位职责范本
2014/03/08 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
物流业务员岗位职责
2015/04/03 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python