php ZipArchive实现多文件打包下载实例


Posted in PHP onOctober 31, 2019

实例代码:

public function downLoad($dataUrl,$saveName)
  {
    $datalist = [
      ROOT_PATH.'/public/introduce/110.docx',
      ROOT_PATH.'/public/upfile/110.zip'
    ];
//    print_r($datalist);die;
    $filename = ROOT_PATH.'\public\/'.$saveName.'.zip';
    if(file_exists($filename)){
      unlink($filename);
    }

    $zip = new \ZipArchive();
    if ($zip->open($filename,\ZipArchive::CREATE)!== true){
      exit('无法打开文件,或者文件创建失败');
    }

    foreach ($dataUrl as $index => $item) {
      if (DIRECTORY_SEPARATOR=='\\'){
        $item = str_replace('/',DIRECTORY_SEPARATOR,$item);
        $filename = str_replace('/',DIRECTORY_SEPARATOR,$filename);
      }
//      var_dump($item);
//      var_dump(file_exists($item));die;
      if (file_exists($item)){
        $zip->addFile($item,basename($item));
      }
    }

    $zip->close();
    if(!file_exists($filename)){
      exit("无法找到文件"); //即使创建,仍有可能失败
    }
    header('Content-Type: application/zip');
    header('Content-disposition: attachment; filename='.basename($filename));
    header('Content-Length: ' . filesize($filename));
    @readfile($filename);
 @unlink ( $filename );
}

注意:里面的路径全部用绝对路径,不然会找不到文件

附赠其他操作:

解压缩zip文件

public function unzip_file($file, $dir){ 

    // 实例化对象 

    $zip = new ZipArchive() ; 

    //打开zip文档,如果打开失败返回提示信息 

    if ($zip->open($file) !== TRUE) { 

     die ("Could not open archive"); 

    } 

    //将压缩文件解压到指定的目录下 

    $zip->extractTo($dir); 

    //关闭zip文档 

    $zip->close(); 

  }

获取解压文件目录

public function loopFun($dir) 

  { 

    $handle = opendir($dir.".");

    //定义用于存储文件名的数组

    $array_file = array();

    while (false !== ($file = readdir($handle)))

    {

      if ($file != "." && $file != "..") {

        $array_file[] = $dir.'/'.$file; //输出文件名

      }

    }

    closedir($handle);

    return $array_file;

    //print_r($array_file);

  }

大家可以在本地测试下,感谢大家的学习和对三水点靠木的支持。

PHP 相关文章推荐
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
php中AES加密解密的例子小结
Feb 18 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
php商品对比功能代码分享
Sep 24 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
PHP加MySQL消息队列深入理解
Feb 27 PHP
Laravel框架实现抢红包功能示例
Oct 31 #PHP
laravel框架实现后台登录、退出功能示例
Oct 31 #PHP
TP5框架简单登录功能实现方法示例
Oct 31 #PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 #PHP
laravel 框架实现无限级分类的方法示例
Oct 31 #PHP
tp5框架的增删改查操作示例
Oct 31 #PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 #PHP
You might like
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php之XML转数组函数的详解
2013/06/07 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
javascript 闭包详解
2015/07/02 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
Python中属性和描述符的正确使用
2016/08/23 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
创业计划书撰写原则
2014/01/25 职场文书
运动会广播稿20字
2014/02/18 职场文书
公司晚会主持词
2014/03/22 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
2015年库房工作总结
2015/04/30 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript