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+DBM的同学录程序(4)
Oct 09 PHP
PHP 手机归属地查询 api
Feb 08 PHP
PHP常用的缓存技术汇总
May 05 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 PHP
php curl 上传文件代码实例
Apr 27 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
PHP实现百度人脸识别
May 06 PHP
php传值和传引用的区别点总结
Nov 19 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 PHP
php中array_fill函数的实例用法
Mar 02 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
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
Python实现的最近最少使用算法
2015/07/10 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Pandas中resample方法详解
2019/07/02 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
详解python polyscope库的安装和例程
2020/11/13 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
重阳节活动总结
2014/08/27 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
活着观后感
2015/06/03 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript