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 相关文章推荐
实用函数3
Nov 08 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
php编程每天必学之表单验证
Mar 01 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
PHP实现的数据对象映射模式详解
Mar 20 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
JS backgroundImage控制
2009/05/19 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python遍历路径破解表单的示例
2020/11/21 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
Joules美国官网:出色的英国风格
2017/10/30 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
党建工作先进材料
2014/05/02 职场文书
导师推荐信范文
2014/05/09 职场文书
村干部任职承诺书
2015/01/21 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
摩登时代观后感
2015/06/03 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL