PHP/ThinkPHP实现批量打包下载文件的方法示例


Posted in PHP onJuly 31, 2017

前言

本文主要给大家介绍的是关于PHP/ThinkPHP实现批量打包下载文件的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍:

需求描述:

有数个文件,包含图片,文档。需要根据条件自动打包成压缩包,提供下载。

解决(ZipArchive 类):

PHP提供了ZipArchive 类可为我们实现这一功能,demo:

<?php
 
$files = array('image.jpeg','text.txt','music.wav');
$zipname = 'enter_any_name_for_the_zipped_file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
 $zip->addFile($file);
}
$zip->close();
 
///Then download the zipped file.
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
 
?>

ThinkPHP版

$zip = new \ZipArchive;
//压缩文件名
$filename = 'download.zip';
//新建zip压缩包
$zip->open($filename,\ZipArchive::OVERWRITE);
//把图片一张一张加进去压缩
foreach ($images as $key => $value) {
 $zip->addFile($value);
}
//打包zip
$zip->close();
 
//可以直接重定向下载
header('Location:'.$filename);
 
//或者输出下载
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header('Content-disposition: attachment; filename='.basename($filename)); //文件名 
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小 
readfile($filename);

区别在引用的时候路径要对,结束。

相关参考:

http://www.php.net/manual/zh/class.ziparchive.php

http://dengrongguan12.github.io/blog/2016/php-ziparchive/

总结

好了,大概就这样,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

PHP 相关文章推荐
建立文件交换功能的脚本(一)
Oct 09 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
zf框架的数据库追踪器使用示例
Mar 13 PHP
php实例分享之mysql数据备份
May 19 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
简单实现PHP留言板功能
Dec 21 PHP
PHP读取Excel类文件
May 15 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 #PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 #PHP
微信接口生成带参数的二维码
Jul 31 #PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 #PHP
PHP中TP5 上传文件的实例详解
Jul 31 #PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 #PHP
PHP将数据导出Excel表中的实例(投机型)
Jul 31 #PHP
You might like
转PHP手册及PHP编程标准
2006/12/17 PHP
php图片验证码代码
2008/03/27 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PDO::_construct讲解
2019/01/27 PHP
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
Python在线运行代码助手
2016/07/15 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
Windows下python3.7安装教程
2018/07/31 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
Python内置加密模块用法解析
2019/11/25 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
护理专业学生职业生涯规划范文
2014/03/11 职场文书
自行车广告词大全
2014/03/21 职场文书
党员干部一句话承诺
2014/05/30 职场文书
后进生评语大全
2015/01/04 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书