首页 > 编程语言 >PHP使用ZipArchive批量打包压缩文件并下载

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

时间:2023-02-24 14:37:42浏览次数:42  
标签:tiantan 压缩文件 WWW ZipArchive phpstudy uploads PHP public subject

PHP使用ZipArchive批量打包压缩文件,并下载。使用php自带的ZipArchive类,可以压缩或解压文件。

首先需要确定已经安装了zip扩展,如果没有安装,请先安装,下载:http://pecl.php.net/package/zip (相应php版本的zip包)

 

 

先把需要下载的文件路径找出来并组成数组,如下

Array
(
    [0] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\aa.pdf
    [1] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\bb.pdf
    [2] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\cc.pdf
    [3] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\dd.pdf
    [4] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\ee.pdf
    [5] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\ff.pdf
    [6] => E:\phpstudy_pro\WWW\subject\public\uploads\file\tiantan\2022\gg.pdf
)

逻辑:先把文件压缩到指定目录(自定义$addonFile目录下),然后再把文件输出下载

代码如下:

$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');

// 压缩文件名
$addonFile = ROOT_PATH.'public'.DS.'uploads'.DS.'downzip'.DS.'学科评估_【'.$info['hospital'].'_'.$this->year. '年】.zip';
$zip = new \ZipArchive;

//新建zip压缩包
$zip->open($addonFile,\ZipArchive::CREATE | \ZipArchive::OVERWRITE);
//把文件一张一张加进去压缩
foreach ($files as $key => $value) {
    $zip->addFile($value,basename($value));
}
//打包zip
$zip->close();

header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header('Content-disposition: attachment; filename='.basename($addonFile)); //文件名 
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($addonFile)); //告诉浏览器,文件大小 
readfile($addonFile);

 

标签:tiantan,压缩文件,WWW,ZipArchive,phpstudy,uploads,PHP,public,subject
From: https://www.cnblogs.com/zxf100/p/17151328.html

相关文章

  • 快速搭建lamp环境以及httpd无法解析PHP文件,只显示PHP源码或者直接下载PHP文件的错误处
      快速搭建lamp环境以及httpd无法解析PHP文件,只显示PHP源码或者直接下载PHP文件的错误处理快速搭建lamp,使用yum安装httpd2.4以及mariadb10.1和php5.4,仅仅是测试学习用lam......
  • php 导入excel 表格里时间 进行处理
    /***[excelTimedescription]*@Author:XuXianGang*@Method:excel转换时间*@DateTime:2022-06-06T09:36:37+0800*@param[type]$days......
  • php中preg_replace_callback函数同一个正则,替换成不同内容
    可以使用php在线运行,去运行文章的代码https://www.bejson.com/runcode/php/本文实例讲述了php中preg_replace_callback函数用法。分享给大家供大家参考,具体如下:mixedpr......
  • PHP数组与XML之间的转换【转载】
    在开发中,我们经常会遇到数组与XML之间的互相转换,尤其在处理接口开发的时候经常用到,比如对方客户端POST一个XML格式的数据到服务器上,服务器上的程序要负责接收解析,还有需要将......
  • 小记:php无法登录mysql服务器
    PHP脚本连接到MySQL服务器,可能是以下几个原因:MySQL服务器没有运行或停止了。你可以尝试重启MySQL服务器。PHP扩展没有安装或启用。你需要确保安装了PHP的M......
  • PHP接入苹果支付
    Ios苹果支付流程:客户端先从苹果获取内购Id。客户端将内购id,金额、用户id等传给服务端获取一个自己服务端生成的订单号。客户端向苹果发起支付。支付成功后,客户端从本......
  • [代码审计基础 15]phpmcs_v9.6 rce
    PHP:5.4.5设置调试:https://blog.csdn.net/m0_46641521/article/details/120107786版本:phpcms_v9.6.0_UTF80x01:路由分析和前一篇一样的路由,但是对输入的关键字都有了防护......
  • PHP DateTime 对象和 Date 函数的 Demo
    DateTime对象<?php//设置时间时区date_default_timezone_set('PRC');$dateFormat="Y-m-d";$dateTimeFormat="Y-m-dH:i:s";//获取当前时间$date=newDateTi......
  • php-mysql 函数练习和使用!
    1.回顾:上篇学习和使用了wamp+eclipse的环境搭建2.这篇将学习一个例子,使用mysql函数来学习3.基本操作  3.1设置编码header("Content-type:text/html;charset=utf-8......
  • php-wamp+eclipse+php环境搭建
    1.回顾:上篇已经解决了wamp与IIS冲突的问题2.这篇就开始使用wamp+eclipse搭建php的开发环境3.准备篇  3.1下载wamp软件      在百度里可以搜索到,安装的......