php多文件打包下载的实例代码


Posted in PHP onJuly 12, 2017

最近整理文档,搜刮出一个php多文件打包下载的实例代码,稍微整理精简一下做下分享。

需要同时下载多个文件时,大部分浏览器都不支持多文件同时下载,可以采用JavaScript脚本动态生成多个链接,但是需要用户多次点击下载对话框,用户体验不好,并且有些浏览器还不兼容。此时多文件打包下载帮你解决这个问题。

$filename = "test.zip";
$datalist=array('./pubfile/1.jpg','./pubfile/2.jpg');
if(!file_exists($filename)){
 $zip = new ZipArchive();
 if ($zip->open($filename, ZipArchive::CREATE)==TRUE) {
  foreach( $datalist as $val){
   if(file_exists($val)){
    $zip->addFile( $val, basename($val));
   }
  }
  $zip->close();
 }
}
if(!file_exists($filename)){
 exit("无法找到文件");
}
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($filename)); //文件名
header("Content-Type: application/zip"); //zip格式的
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件
header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小
@readfile($filename);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
多php服务器实现多session并发运行
Oct 09 PHP
mysql5的sql文件导入到mysql4的方法
Oct 19 PHP
php实现文件下载更能介绍
Nov 23 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
PHP策略模式写法
Apr 01 PHP
PHP实现考试倒计时功能代码
Apr 16 PHP
php实现网页端验证码功能
Jul 11 #PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 #PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 #PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 #PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 #PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 #PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 #PHP
You might like
php设计模式 Proxy (代理模式)
2011/06/26 PHP
php模板函数 正则实现代码
2012/10/15 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
javascript实现的元素拖动函数宿主为浏览器
2014/07/21 Javascript
javascript控制台详解
2015/06/25 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
vue.js的安装方法
2017/05/12 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
两种CSS3伪类选择器详细介绍
2013/12/24 HTML / CSS
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
竞聘演讲稿开场白
2014/08/25 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
就业证明函
2015/06/17 职场文书
退货证明模板
2015/06/23 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
使用python创建股票的时间序列可视化分析
2022/03/03 Python