博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP下载压缩包文件
阅读量:6959 次
发布时间:2019-06-27

本文共 1885 字,大约阅读时间需要 6 分钟。

PHP 压缩文件需要用到 ZipArchive 类,Windows 环境需要打开 php_zip.dll扩展。

压缩文件

$zip = new ZipArchive();// 打开一个zip文档,ZipArchive::OVERWRITE:如果存在这样的文档,则覆盖;ZipArchive::CREATE:如果不存在,则创建$res = $zip->open('test.zip', ZipArchive::OVERWRITE | ZipArchive::CREATE);if($res){    // 添加 a.txt 到压缩文档    $zip->addFile('a.txt');    // 添加一个字符串到压缩文档中的b.txt    $zip->addFromString('b.txt', 'this is b.txt');    // 添加一个空目录b到压缩文档    $zip->addEmptyDir('b');}// 关闭打开的压缩文档$zip->close();

压缩目录

1 /** 2  * @param $dir 目标目录路径 3  * @param $zip ZipArchive类对象 4  * @param $prev 5  */ 6 function compressDir($dir, $zip, $prev='.') 7 { 8     $handler = opendir($dir); 9     $basename = basename($dir);10     $zip->addEmptyDir($prev . '/' . $basename);11     while($file = readdir($handler))12     {13         $realpath = $dir . '/' . $file;14         if(is_dir($realpath))15         {16             if($file !== '.' && $file !== '..')17             {18                 $zip->addEmptyDir($prev . '/' . $basename . '/' . $file);19                 compressDir($realpath, $zip, $prev . '/' . $basename);20             }21         }else22         {23             $zip->addFile($realpath, $prev. '/' . $basename . '/' . $file);24         }25     }26 27     closedir($handler);28     return null;29 }30 31 $zip = new ZipArchive();32 $res = $zip->open('test.zip', ZipArchive::OVERWRITE | ZipArchive::CREATE);33 if($res)34 {35     compressDir('./test', $zip);36     $zip->close();37 }

解压缩

$zip = new ZipArchive();$res = $zip->open('test1.zip');if($res){    // 解压缩文件到指定目录    $zip->extractTo('test');    $zip->close();}

下载压缩包

下载压缩包需要先将目标目录压缩,然后下载压缩包,最后删除压缩包。

在压缩目录示例中,追加以下代码:

header('Content-Type:text/html;charset=utf-8');header('Content-disposition:attachment;filename=test.zip');$filesize = filesize('./test.zip');readfile('./test.zip');header('Content-length:'.$filesize);unlink('./test.zip');

 

  

转载于:https://www.cnblogs.com/fxyy/p/7719711.html

你可能感兴趣的文章
VS2013编译python源码
查看>>
CI之旅
查看>>
40余项高科技亮相智慧城市科技酷品展
查看>>
Redis安装和常用知识
查看>>
坚果智能影院实体布局再下一城 肇庆旗舰店火热开业
查看>>
背水一战 Windows 10 (21) - 绑定: x:Bind 绑定, x:Bind 绑定之 x:Phase, 使用绑定过程中的一些技巧...
查看>>
zk日常运维管理
查看>>
DJANGO,获取当前用户名,用户组名,用户组权限
查看>>
mysql 常用函数
查看>>
数据库安全管理实践 你的数据库在哪里?
查看>>
及时警惕!云计算带来的安全风险
查看>>
阿里云前端周刊 - 第 31 期
查看>>
游戏安全资讯精选 2017年第十三期 Typecho前台无限制Getshell漏洞预警,勒索软件市场正在呈爆炸式增长...
查看>>
电子化的阅读:学习时代的新行为
查看>>
颠覆传统的中兴微模块数据中心 开启中小企业的大数据梦
查看>>
《VMware Virtual SAN权威指南》一1.4 Virtual SAN简介
查看>>
ClassFlow推出全新课堂活动轨迹功能
查看>>
高性能计算在电网技术中的应用
查看>>
EMC高管:戴尔Nutanix一体机与EMC超融合产品之间不存在竞争
查看>>
O2O探秘:实体店背后的科学
查看>>