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的多线程下载方法。 方案概述 本方案基于curl_multi函数实现多线程下载。具体方案如下: 构建curl句柄数组 设置curl选项 执行curl句柄数组 关闭curl句柄数组 代码实现 <?php $maxThreads = 10; …

    PHP 2023年5月27日
    00
  • 基于PHP做个图片防盗链

    基于PHP做个图片防盗链的完整使用攻略 图片防盗链是指在网站上使用图片时,防止其他网站直接链接到该图片,从而消耗网站的带宽和流量。本文将详细讲解如何使用PHP实现图片防盗链功能。 步骤1:创建防盗链脚本 我们可以使用PHP脚本来实现图片防盗链功能。以下是一个简单的防盗链脚本示例: <?php $referer = $_SERVER[‘HTTP_REFE…

    PHP 2023年5月12日
    00
  • 五个PHP程序员工具

    以下是“五个PHP程序员工具”的完整攻略: 1. Composer: 简介: Composer 是 PHP 的依赖管理工具。它允许你在你的项目中声明一个依赖库,然后它会自动为你管理(安装/升级)这些库和其它的必要库。 如何安装: 官网中有详细的安装指南,可按照指南进行安装:https://getcomposer.org/download/ 如何使用: 通过命…

    PHP 2023年5月23日
    00
  • PHP SPL SplFileInfo FilterIterator 轮询文件删除

    基于PHP spl 遍历文件删除过期的日志文件   一.定义PHP类 , 限制文件扩展 RecursiveFileFilterIterator.class.php  <?php class RecursiveFileFilterIterator extends FilterIterator { protected $ext = array(‘log’,…

    PHP 2023年4月17日
    00
  • 超级简单的php+mysql留言本源码

    我来说一下“超级简单的php+mysql留言本源码”的完整攻略吧。 环境准备 首先,你需要有一台安装有 Apache 服务器、MySQL 数据库以及 PHP 的电脑,或者使用各种云服务器也可以。我在这里使用的是 XAMPP 工具,它可以快速建立 PHP 开发环境,可以在 XAMPP官网 下载安装。 安装数据库 接下来需要安装数据库,打开 phpMyAdmin…

    PHP 2023年5月24日
    00
  • PHP dirname(__FILE__)原理及用法解析

    当在PHP脚本中使用相对路径时,我们有时候需要知道当前脚本所在的文件夹路径。PHP提供了一个获取当前脚本所在文件夹路径的方法:dirname(__FILE__)。本篇攻略将会详细讲解该方法的原理及用法,以及提供两个具体的示例说明。 原理解析 __FILE__在PHP中是一个魔术常量,表示当前文件的完整路径。而dirname是PHP提供的一个函数,用于获取一个…

    PHP 2023年5月27日
    00
  • iOS14中的AppClips功能有什么作用 AppClips功能介绍

    现在我将详细讲解“iOS14中的AppClips功能有什么作用 AppClips功能介绍”的完整攻略。 什么是AppClips功能? iOS14新引入的AppClips功能,是一种小型应用程序,能够为你提供一些特定场景下的快速实用功能,比如付款、预定、点餐等。它不需要你下载整个应用程序,只需要扫描二维码或者通过Siri语音指令即可启动。 AppClips功能…

    PHP 2023年5月30日
    00
  • php中0,null,empty,空,false,字符串关系的详细介绍

    下面是完整的攻略: PHP中0、null、empty、空、false、字符串关系的详细介绍 1. 0 在PHP中,0表示整型的零值。如果一个数值类型的变量的值等于0,那么这个变量将被认为是false。 举个例子,比较一下下面两个表达式: $number = 0; if ($number) { echo "number is true"; …

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