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+SqlServer实现分页显示
Oct 09 PHP
如何在PHP中使用Oracle数据库(1)
Oct 09 PHP
加速XP搜索功能堪比vista
Mar 22 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
PHP自定义多进制的方法
Nov 03 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP等比例压缩图片的实例代码
Jul 26 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
PHP使用非对称加密算法RSA
Apr 21 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类(查找/修改)xml文档
2013/03/26 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
javascript 写类方式之三
2009/07/05 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
js实现数组转换成json
2015/06/26 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
vue axios同步请求解决方案
2017/09/29 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
Python操作Access数据库基本步骤分析
2016/09/19 Python
不可错过的十本Python好书
2017/07/06 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
幼儿园小班个人工作总结
2015/02/12 职场文书
酒店员工手册范本
2015/05/14 职场文书
金砖之国观后感
2015/06/11 职场文书
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS