php打包压缩下载多大,php多文件打包压缩下载简单示例

调用php中内置扩展ZipArchive类可以进行文件压缩打包下载,(PHP 5>=5.2.0,PHP 7,PECL zip>=1.1.0)

调用php中内置扩展ZipArchive类可以进行文件压缩打包下载,(PHP 5>=5.2.0,PHP 7,PECL zip>=1.1.0)

简单示例:<?php

function zipfile($file_path){

// 压缩多个文件

$fileList = explode(',', $file_path);

$filename = time() . ".zip"; // 压缩包所在的位置路径

$zip = new ZipArchive();

$zip->open($filename, ZipArchive::CREATE); //打开压缩包

foreach ($fileList as $file) {

$zip->addFile($file, basename($file)); //向压缩包中添加文件

}

$rs = $zip->close(); //关闭压缩包

//下载文件

$file = fopen($filename, "r");

//返回的文件类型

Header("Content-type: application/octet-stream");

//按照字节大小返回

Header("Accept-Ranges: bytes");

//返回文件的大小

Header("Accept-Length: " . filesize($filename));

//这里设置客户端的弹出对话框显示的文件名

Header("Content-Disposition: attachment; filename=" . $filename);

//一次性将数据传输给客户端

//echo fread($file, filesize($filePath));

//一次只传输1024个字节的数据给客户端

//向客户端回送数据

$buffer = 1024;//

//判断文件是否读完

while (!feof($file)) {

//将文件读入内存

$file_data = fread($file, $buffer);

//每次向客户端回送1024个字节的数据

echo $file_data;

}

//将生成的zip文件在服务器端删除,只需要客户端下载就行了

@unlink($filename);

}

zipfile('E:\www\test\filetest\getfile\1.jpg,E:\www\test\filetest\getfile\1.txt');

?>

ZipArchive::addEmptyDir — 添加新目录

ZipArchive::addFile — 将文件从给定路径添加到ZIP存档

ZipArchive::addFromString — 使用文件的内容将文件添加到ZIP存档

ZipArchive::addGlob — 按glob模式从目录添加文件

ZipArchive::addPattern — 按PCRE模式从目录添加文件

ZipArchive::close — 关闭活动存档(已打开或新创建)

ZipArchive::count — 统计存档中的文件数

ZipArchive::deleteIndex — 使用存档中的索引删除该项

ZipArchive::deleteName — 删除存档中使用其名称的条目

ZipArchive::extractTo — 提取存档内容

ZipArchive::getArchiveComment — 返回Zip存档注释

ZipArchive::getCommentIndex — 使用条目索引返回条目的注释

ZipArchive::getCommentName — 返回使用项名称的项的注释

ZipArchive::getExternalAttributesIndex — 检索由其索引定义的项的外部属性

ZipArchive::getExternalAttributesName — 检索由其名称定义的项的外部属性

ZipArchive::getFromIndex — 使用其索引返回项内容

ZipArchive::getFromName — 使用其名称返回条目内容

ZipArchive::getNameIndex — 返回使用其索引的项的名称

ZipArchive::getStatusString — 返回状态错误消息、系统和/或zip消息

ZipArchive::getStream — 获取由其名称定义的条目的文件处理程序(只读)

ZipArchive::isCompressionMethodSupported — 检查libzip是否支持压缩方法

ZipArchive::isEncryptionMethodSupported — 检查libzip是否支持加密方法

ZipArchive::locateName — 返回存档项的索引

ZipArchive::open — 打开压缩文件存档

ZipArchive::registerCancelCallback — 注册回调以允许在存档关闭期间取消。

ZipArchive::registerProgressCallback — 注册回调以在存档关闭期间提供更新。

ZipArchive::renameIndex — 重命名由其索引定义的项

ZipArchive::renameName — 重命名由其名称定义的项

ZipArchive::replaceFile — 用给定的路径替换ZIP存档中的文件

ZipArchive::setArchiveComment — 设置ZIP存档的注释

ZipArchive::setCommentIndex — 设置由其索引定义的项注释

ZipArchive::setCommentName — 设置由名称定义项注释

ZipArchive::setCompressionIndex — 设置由索引定义的项的压缩方法

ZipArchive::setCompressionName — 设置由名称定义的项的压缩方法

ZipArchive::setEncryptionIndex — 设置由其索引定义的项的加密方法

ZipArchive::setEncryptionName — 设置由名称定义的项的加密方法

ZipArchive::setExternalAttributesIndex — 设置由其索引定义的项的外部属性

ZipArchive::setExternalAttributesName — 设置由名称定义的项的外部属性

ZipArchive::setMtimeIndex — 设置由其索引定义的项的修改时间

ZipArchive::setMtimeName — 设置由名称定义的条目的修改时间

ZipArchive::setPassword — 设置活动存档的密码

ZipArchive::statIndex — 获取由其索引定义的项的详细信息

ZipArchive::statName — 获取由名称定义的项的详细信息

ZipArchive::unchangeAll — 撤消存档中所做的所有更改

ZipArchive::unchangeArchive — 还原存档中完成的所有全局更改

ZipArchive::unchangeIndex — 还原对给定索引项所做的所有更改

ZipArchive::unchangeName — 还原对具有给定名称的条目所做的所有更改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Science揭示:身体如何应对细菌的“群体感应”

电子显微镜下的假单胞菌细菌。图片来源&#xff1a;MPIIB / Volker Brinkmann来源&#xff1a;中国生物技术网众所周知&#xff0c;细菌感染并不会马上导致疾病&#xff0c;只有在它们大量出现时才会对身体造成威胁。近日&#xff0c;发表在《Science》上的一项研究中&#xff…

MySql分页存储过程

分页获取数据 code DELIMITER $$ DROP PROCEDURE IF EXISTS testDB.GetRecordAsPage $$ CREATE PROCEDURE testDB.GetRecordAsPage (in tbName varchar(800),in fldName varchar(1000), in strWhere varchar(500),in pageIndex int,in pageSize int,in orderType int,in sortN…

python快速入门课堂笔记_Python 快速入门笔记(9):模块和包

本系列随笔是本人的学习笔记&#xff0c;初学阶段难免会有理解不当之处&#xff0c;错误之处恳请指正。转载请注明出处&#xff1a;https://www.cnblogs.com/itwhite/p/12302882.html。目录一、模块指定导入的符号列表模块查找的路径在模块中插入测试代码二、包一、模块所有 py…

mysql中的dump,从mysql中dump数据到本地

方法一&#xff1a;使用mysqldump命令&#xff0c;如&#xff1a; mysqldump -h10.90.6.237 -uf_insplat2car_r -P3306 -pxxxxxxxxx nbmp tb_tag_log --skip-lock-tables --set-charset --where"origin_chance_no like nbcar%" > dump.sql注意此方法默认情况下会在…

百度:2020年十大科技趋势

来源&#xff1a;6G俱乐部图片来源&#xff1a;百度2019&#xff0c;关于科技的鲜活记忆&#xff0c;正在快速变成时间洪流的一部分&#xff0c;也变成了我们读懂未来的钥匙。过去一年中&#xff0c;多技术融合正在加快&#xff0c;AI开发的门槛在迅速降低&#xff0c;产业智能…

数据绑定和第一个AngularJS 应用

Hello 小朋友 一&#xff1a; <input ng-model"name" type"text" placeholder"Your Name"> <h1>Hello {{ name }}</h1> 二&#xff1a; <body ng-app"myApp"><div ng-controller"MyController"&…

python实现采样函数_python中resample函数实现重采样和降采样代码

函数原型resample(self, rule, howNone, axis0, fill_methodNone, closedNone, labelNone, convention‘start, kindNone, loffsetNone, limitNone, base0, onNone, levelNone)比较关键的是rule,closed,label下面会随着两个用法说明降采样对时间数据细粒度增大&#xff0c;可以…

美国计划让“人工智能”去搜寻外星人!

来源&#xff1a;科学解码据美国太空网近日报道&#xff0c;美国国家航空航天局&#xff08;NASA&#xff09;官员称&#xff0c;他们希望利用人工智能&#xff08;例如机器学习&#xff09;技术&#xff0c;分析大型望远镜等收集的数据&#xff0c;从而帮助搜寻外星生命&#…

python的进程线程和协程_python成长之路 :线程、进程和协程

python线程进程与线程的历史我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心&#xff0c;它承担计算机的所有任务。 操作系统是运行在硬件之上的软件&#xff0c;是计算机的管理者&#xff0c;它负责资源的管理和分配、任务的调度。 程序是运行在系统上的具有…

iOS事件的响应和传递机制

跟二狗子哥哥交流的时候&#xff0c;他总说我&#xff0c;说的过程太业余。故 好好学习整理一下。努力不那么业余。 一、事件的产生、传递、响应&#xff1a; 1、事件从父控件依次传递到子控件&#xff0c;寻找最合适的子控件View。 2、寻找最合适的View的底层实现&#xff0c;…

php 树状数组公式,PY个树状数组

树状数组比较简单&#xff0c;于是就挑它下手了...于是生活终于也对咱下手了...要讲的就两个东西&#xff0c;一个是开数组&#xff0c;全局变量写最前面&#xff0c;数组是这么开的&#xff1a; f[0 for i in range(500005)]另外一个就是 注意 split()还有一句就是咱发现 pyth…

三宝机器人怎么充电_巨人通力导致吉祥三宝+36号故障怪现象的又一因素

想必大家都有过这样的经历&#xff1a;在电梯故障频繁出现时&#xff0c;明明可以判断是哪里的问题&#xff0c;但事实却是让你感觉不可思议&#xff0c;并且排查过程颇为周折。今天和大家分享一下我经历的巨人通力GPS30K电梯出现的吉祥三宝故障的排查过程。下图为电梯控制柜铭…

《自然》展望2020年重大科学事件!中国有两个大计划安排上了

来源&#xff1a;科技日报图片来源&#xff1a;Nature官网&#xff08;不包括标注了来源的图片&#xff09;“千门万户曈曈日&#xff0c;总把新桃换旧符”&#xff01;在辞旧迎新之际&#xff0c;我们除了要埋头梳理过去一年的悲欢得失&#xff0c;也应抬头眺望新一年的星辰大…

discuz search.php修改,discuz程序如何将热门搜索修改为指向门户搜索的方法

站长朋友们使用discuz论坛程序建站&#xff0c;细心的站长朋友们发现首页右上角有个热门搜索功能。这个功能的主要作用就是可以让会员们第一时间搜索到本论坛内需要找到的帖子&#xff0c;这样做就给会员朋友们提供了很大的好处&#xff0c;不用再为了找到需要的帖子而大费周章…

vue aplayer 进度条无法拖动_Vue-rideo-player视频播放插件的使用

***** git项目地址&#xff1a; https://github.com/surmon-china/vue-video-player***** 参考文章&#xff1a; https://www.jianshu.com/p/532fc1d8c90c使用安装&#xff1a; npm install vue-video-player --save2. 在main.js入口文件中引入import VideoPlayer from vue-vid…

php流程控制作业题,php流程控制

一、get传值我们请求服务器下一步操作啊&#xff0c;都是用get进行传值&#xff0c;然后服务器用预定义变量数组$_GET&#xff0c;接受。二、流程控制1 三元运算符 ? :逻辑很简单&#xff0c;就是设置条件&#xff0c;条件成立就执行“&#xff1f;” 。条件不成立就执行”:…

JS中的call()和apply()方法(转)

转自&#xff1a;http://uule.iteye.com/blog/1158829 JS中的call()和apply()方法 博客分类&#xff1a; JS1、方法定义 call方法: 语法&#xff1a;call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义&#xff1a;调用一个对象的一个方法&#xff0c;以另一个对象替换当前对象…

中国AI芯片产业发展白皮书:未来三年年均增长率超50%

来源&#xff1a;赛迪顾问《中国AI芯片产业发展白皮书》从AI芯片的定义及分类、发展过程与现状、应用机会、竞争格局、发展趋势等多角度全面剖析AI芯片的发展新态势、 技术演进及行业格局&#xff0c;旨在为业内相关企业把握行业发展动态、挖掘市场机遇&#xff0c;提供借鉴与参…

python队列怎么用_如何在Python中使用多处理队列? - python

我很难理解多处理队列如何在python上工作以及如何实现它。假设我有两个python模块&#xff0c;它们从共享文件中访问数据&#xff0c;我们将这两个模块称为writer和Reader。我的计划是让读取器和写入器都将请求放入两个单独的多处理队列中&#xff0c;然后让第三个进程将这些请…

php获取显示图书数据,php基于dom实现读取图书xml格式数据的方法

本文实例讲述了php基于dom实现读取图书xml格式数据的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;<?php $doc new DOMDocument();$doc->load( books.xml );$books $doc->getElementsByTagName( "book" );foreach( $books as $book ){$au…