翼度科技»论坛 编程开发 PHP 查看内容

PHP使用ZipArchive批量打包压缩文件并下载

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
PHP使用ZipArchive批量打包压缩文件,并下载。使用php自带的ZipArchive类,可以压缩或解压文件。
首先需要确定已经安装了zip扩展,如果没有安装,请先安装,下载:http://pecl.php.net/package/zip (相应php版本的zip包)

 
 
先把需要下载的文件路径找出来并组成数组,如下
  1. Array
  2. (
  3.     [0] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\aa.pdf
  4.     [1] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\bb.pdf
  5.     [2] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\cc.pdf
  6.     [3] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\dd.pdf
  7.     [4] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\ee.pdf
  8.     [5] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\ff.pdf
  9.     [6] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\gg.pdf
  10. )
复制代码
逻辑:先把文件压缩到指定目录(自定义$addonFile目录下),然后再把文件输出下载
代码如下:
  1. $files = ('E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\aa.pdf','E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\bb.pdf','E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\cc.pdf','E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\dd.pdf');
  2. // 压缩文件名
  3. $addonFile = ROOT_PATH.'public'.DS.'uploads'.DS.'downzip'.DS.'学科评估_【'.$info['hospital'].'_'.$this->year. '年】.zip';
  4. $zip = new \ZipArchive;
  5. //新建zip压缩包
  6. $zip->open($addonFile,\ZipArchive::CREATE | \ZipArchive::OVERWRITE);
  7. //把文件一张一张加进去压缩
  8. foreach ($files as $key => $value) {
  9.     $zip->addFile($value,basename($value));
  10. }
  11. //打包zip
  12. $zip->close();
  13. header("Cache-Control: public");
  14. header("Content-Description: File Transfer");
  15. header('Content-disposition: attachment; filename='.basename($addonFile)); //文件名
  16. header("Content-Type: application/force-download");
  17. header("Content-Transfer-Encoding: binary");
  18. header('Content-Length: '. filesize($addonFile)); //告诉浏览器,文件大小
  19. readfile($addonFile);
复制代码
 

来源:https://www.cnblogs.com/zxf100/p/17151328.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具