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变量引用的面试题
Aug 08 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
php使用PDO方法详解
Dec 27 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
javascript中length属性的探索
2011/07/31 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python 对象和json互相转换方法
2018/03/22 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
简单了解python PEP的一些知识
2019/07/13 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
物流专业大学的自我评价
2014/01/11 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
养成教育工作总结
2015/08/13 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS