• 零、写在前面
  • 一、参考地址
  • 二、代码

零、写在前面

  • 请根据自己的实际需求修改此代码

一、参考地址

  • PHP使用自带的ZipArchive类,实现压缩文件目录
  • PHP如何开启自带的ZipArchive类,实现压缩解压功能
  • php 将文件打包成 zip

二、代码

function zip() {$files = array(ROOT_PATH.'/public/Uploads/');//$files = array('upload/qrcode/1/1.jpg');$zipFile = ROOT_PATH.'/public/upload/download/'.date("Ymd").'/';$zipName = $zipFile.uniqid().'.zip';$zip = new \ZipArchive();if( !file_exists($zipFile) ) {mkdir($zipFile, 0777, true);chmod($zipFile, 0777);}$res = $zip->open($zipName, \ZipArchive::OVERWRITE | \ZipArchive::CREATE);if($res){$this->compressDir($files[0],$zip);$zip->close();}if(!file_exists($zipName)){exit("无法找到文件"); //即使创建,仍有可能失败}//如果不要下载,下面这段删掉即可,如需返回压缩包下载链接,只需 return $zipName;header("Cache-Control: public");header("Content-Description: File Transfer");header('Content-disposition: attachment; filename='.basename($zipName)); //文件名header("Content-Type: application/zip"); //zip格式的header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件header('Content-Length: '. filesize($zipName)); //告诉浏览器,文件大小@readfile($zipName);exit();
}function compressDir($files, $zip, $prev='') {$handler = opendir($files);$basename = basename($files);$zip->addEmptyDir($prev . '/' . $basename);while($file = readdir($handler)){$realpath = $files . '/' . $file;if(is_dir($realpath)){if($file !== '.' && $file !== '..'){$zip->addEmptyDir($prev . '/' . $basename . '/' . $file);$this->compressDir($realpath, $zip, $prev . '/' . $basename);}}else{$zip->addFile($realpath, $prev. '/' . $basename . '/' . $file);}}closedir($handler);return null;
}//递归删除该目录和该目录下的所有文件、目录
function delDirAndFile($dirName) {if (is_dir($dirName)) {if ($handle = opendir("$dirName")) {while (false !== ($item = readdir($handle))) {if ($item != "." && $item != "..") {if (is_dir("$dirName/$item")) {$this->delDirAndFile("$dirName/$item");    //注意这里的调用方式,与调用该方法的方式相同} else {unlink("$dirName/$item"); //删除文件}}}closedir($handle);rmdir($dirName); //删除目录}} else {echo '目录不存在';}
}

PHP 使用 ZipArchive 将文件打包成 zip相关推荐

  1. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

  2. php 生成zip并下载,PHP 实现文件打包成zip格式并下载

    PHP 文件打包并下载 有个这样的需求,将多个文件打包成zip格式并下载到本地 可根据 ZipArchive这个类来实现此功能 我自己也研究了一下,然后把搞出来了 ,经测试绝对好用 话不多说直接上代码 ...

  3. 文件打包成zip类型文件

    研究了一下,如何把文件打包成Zip文件. 下面是我经历的进程: 1. 首先看到了微软本身的打包代码,是通过System.IO.Packaging 命令空间来进行打包,你可以点击以上的链接来查看其如何打 ...

  4. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值

    #!/usr/bin/env python #_*_encoding:utf-8 # 2018/05/29 #augustyang #2.0 ''' 解压文件,合并文件 打包成zip格式文件 生成MD ...

  5. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储 版权声明:本文为博主原创 ...

  6. java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){String filePath ="";//文件路径Str ...

  7. java 把文件打包成zip_java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){ String filePath ="";//文件路径 S ...

  8. SpringBoot将文件打包成zip存放或导出

    目录 前言 环境准备 将文件打包成Zip存放 代码 测试 将文件打包成zip并导出 代码 测试 结尾 前言 相信各位看官在工作中都会遇到过要把多个文件打包成一个压缩文件然后导出,或者将文件打包成Zip ...

  9. Java将多个文件打包成ZIP并下载

    Java将多个文件打包成ZIP并下载 需求是多个文件需要同时打包成zip压缩文件并下载到本地,首先我需要的是知道下载文件的路径.我有一个专门的sys_file_info表,表中有对应的文件路径.业务表 ...

  10. 将文件打包成zip包

    参考:http://brushupo.i.sohu.com/blog/view/161729800.htm zip下载代码: package com.util;import java.io.Buffe ...

最新文章

  1. 网易游戏2016实习生招聘笔试题目--推箱子
  2. JavaScript-JavaScript概述及简单使用
  3. 全球及中国LCP行业应用项目布局及产能规模预测报告2021版
  4. YunYang1994/tensorflow-yolov3 Readme 翻译
  5. 基于数据接口文件读取的自动轨迹绘制
  6. mysql 5.7 flashback_Flashback for MySQL 5.7
  7. 44.分治算法练习:  一元三次方程求解
  8. php 抽象类 接口 区别,PHP中抽象类和接口有什么区别
  9. ebs开发入门 oracle 知乎_微信小程序云开发入门第一篇---开发准备事项
  10. 【行测】图形找规律类题目
  11. 谷歌邮箱无法显示使用 Base64 处理的图片的解决方法
  12. 英文系统下手工安装五笔86版
  13. html多张图片合成一张,PS照片合成:多张照片合成一张
  14. VM使用-pin针同心度检测
  15. OpenStack | Placement组件
  16. 计算机开模拟器,iOS在同一台电脑上打开多个模拟器
  17. html基础-style样式
  18. 你真的懂one-hot编码吗?
  19. 网络邻居看不到其他计算机,在网上邻居中看不到自己的电脑也看不到别人的解决方法...
  20. 在油猴脚本中添加css样式的方法

热门文章

  1. 中国农田生产潜力数据集
  2. 一些杂七杂八的算法(打表,递推,随机选择算法)
  3. 用概率的方法计算Pi值
  4. NYOJ题目79-拦截导弹(最长递减子序列)
  5. android 双清菜单,什么是双清?如何双清手机?安卓手机双清教程
  6. php过滤除了文字数据英文,正则:过滤除英文和汉字的其它特殊符号
  7. 比赛之前的数据清零操作
  8. git tag 使用方法(打标签、发布及回滚)
  9. 2025年中国信息消费总额将达12万亿元
  10. 文件带 BOM 的看法