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如何得到当前页和上一页的地址?
Nov 27 PHP
php adodb连接不同数据库
Mar 19 PHP
php 读取shell管道传输过来的内容
Mar 01 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
PDO::prepare讲解
Jan 29 PHP
php实现推荐功能的简单实例
Sep 29 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
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
深入PHP curl参数的详解
2013/06/17 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
详解Node 定时器
2018/02/26 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python多继承原理与用法示例
2018/08/23 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python数据存储之 h5py详解
2019/12/26 Python
基于Python爬虫采集天气网实时信息
2020/06/05 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
后勤部长岗位职责
2013/12/14 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
建国大业观后感
2015/06/01 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript