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 中执行系统外部命令
Oct 09 PHP
一个php作的文本留言本的例子(二)
Oct 09 PHP
深入了解php4(2)--重访过去
Oct 09 PHP
一些关于PHP的知识
Nov 17 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
php实现cookie加密的方法
Mar 10 PHP
PHP实现批量上传单个文件
Dec 29 PHP
PHP实现查询两个数组中不同元素的方法
Feb 23 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
php异常处理捕获错误整理
Sep 23 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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
PHP函数积累总结
2019/03/19 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
js更优雅的兼容
2010/08/12 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
Python生成器generator用法示例
2018/08/10 Python
python制作mysql数据迁移脚本
2019/01/01 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
市场营销管理毕业生自荐信
2014/03/03 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
2014光棍节单身联谊活动策划书
2014/10/10 职场文书
初中教师个人工作总结
2015/02/10 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书