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

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

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

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

 

 

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

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

 

原文链接:https://www.cnblogs.com/zxf100/p/17151328.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP使用ZipArchive批量打包压缩文件并下载 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 微信小程序 消息推送php服务器验证实例详解

    我很乐意为您详细讲解“微信小程序消息推送PHP服务器验证实例详解”。首先,我们需要了解消息推送的基本原理。 消息推送旨在解决两个问题:实时通知和信息更新。通过消息推送,我们可以在没有打开小程序的情况下,第一时间获取到有关小程序的更新或重要信息提醒。 下面,我会详细介绍如何通过PHP服务器进行消息推送。 步骤一:准备工作 为了实现消息推送,我们需要完成以下准备…

    PHP 2023年5月30日
    00
  • PHP模块化安装教程

    PHP模块化安装教程 PHP是广泛使用的服务器端脚本语言,它可以通过模块化方式安装多个扩展,从而扩展功能,这篇教程将介绍PHP的模块化安装教程。 步骤1:安装PHP及其扩展 在开始安装之前,首先需要安装PHP本身和一些常用的扩展。以Ubuntu为例,在命令行输入以下命令即可安装PHP和一些常用的扩展: sudo apt-get update sudo apt…

    PHP 2023年5月23日
    00
  • PHP 变量的定义方法

    下面是关于PHP变量定义方法的完整攻略: 1. 变量的定义方法 在PHP中,可以使用$符号来定义一个变量,语法格式为:$变量名 = 值; 例如,定义一个整数变量 $num 并赋值为10,可以如下所示 $num = 10; 需要注意的是,变量名必须以字母或下划线开头,并且不能以数字开头。变量名只能包含字母,数字和下划线。 另外,PHP变量是弱类型的,也就是说,…

    PHP 2023年5月23日
    00
  • PHP面向对象程序设计重载(overloading)操作详解

    PHP面向对象程序设计重载(overloading)操作详解 什么是重载操作? 在 PHP 中,我们可以通过在类中定义 __call 和 __callStatic 魔术方法来实现一些特殊的操作,这就是所谓的重载操作。 所谓魔术方法,是指在 PHP 中开发人员可以自定义的,以双下划线 __ 开头的一些特殊方法。通过在类中定义这些方法,可以实现一些特殊操作,对于…

    PHP 2023年5月24日
    00
  • 如何离线执行php任务

    如何离线执行 PHP 任务 如果你需要离线执行 PHP 任务,其中比较好的方式就是使用 Cron 定时任务。Cron 可以帮助我们在指定的时间点自动运行 PHP 脚本,从而达到离线执行 PHP 任务的目的。 下面是使用 Cron 定时任务离线执行 PHP 任务的具体攻略: 1. 编写 PHP 脚本 首先,我们需要编写一个需要离线执行的 PHP 脚本,这里以简…

    PHP 2023年5月23日
    00
  • ArcGIS Pro最新详细免费激活正版60天方法(附下载地址)

    首先,要说明一下,我们坚决反对盗版软件使用和传播。本文旨在提供合法的、正式授权的ArcGIS Pro软件的免费激活方法,让需要使用这款软件的用户能够安全、合法地使用。 下载ArcGIS Pro软件 首先,需要从Esri公司官网上下载ArcGIS Pro软件的免试用版。具体步骤如下: 进入Esri公司官网,点击页面右上角的“我的Esri”按钮。 输入自己的Es…

    PHP 2023年5月27日
    00
  • php截取html字符串及自动补全html标签的方法

    PHP截取HTML字符串方法 在PHP中,我们可以使用DOMDocument类来解析HTML文档,并且可以使用XPath查询语言来定位HTML元素。 下面是一个示例,演示如何使用DOMDocument类来截取HTML字符串: // 要截取的HTML字符串 $html = ‘<div class="content"> <h…

    PHP 2023年5月26日
    00
  • Win8.1系统下搭建IIS8.5+PHP5.5.4运行环境教程

    Win8.1系统下搭建IIS8.5+PHP5.5.4运行环境教程 简介 本文将介绍在Win8.1系统下搭建IIS8.5+PHP5.5.4运行环境的详细步骤和注意事项。 步骤 打开控制面板,选择“程序”,然后选择“启用或关闭Windows功能”。 在弹出窗口中,找到“Internet Information Services”并展开。 勾选“Web Manag…

    PHP 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部