PHP在线打包下载功能示例


Posted in PHP onOctober 15, 2016

本文实例讲述了PHP在线打包下载功能实现方法。分享给大家供大家参考,具体如下:

昨天晚上,为了弄这个打包下载的事,弄的事焦头烂额。有几个问题,第一个是开始PHP_ZIP.dll的问题。话说只要把PHP.INI里面的extend_dir里面的前的”;”号去掉。再重启IIS或者apache就可以了。

问题是老是找不到系统配置的真正的PHP.INI。

PHP在线打包下载功能示例

PHP配置图

第二个是告诉你配置文档的路径,按着找就可以了。我当时脑袋秀逗了,浪费了很多时间。

这个开启PHP_ZIP扩展库以后,就可以开始打包下载了。

$filename= date("YmdHis");
$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
$zip->open($filename.".zip", ZipArchive::OVERWRITE); //$data 就是从数据库里面读出的数字
foreach( $data as $val){
   $attachfile = "E:\bysj\bysj".$val['fileaddr'].$val['filename']; //写硬路径,但建议用PHP环境变量
   $attachfile=iconv("UTF-8","GBK",$attachfile); //转码,是打包中文文档的关键
   $zip->addFile( $attachfile , basename($attachfile)); //压栈
}
$zip->close();//关闭
header("Content-type:text/html;charset=utf-8");//设置页面编号
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.".zip");

上面的代码基本就可以实现文档打包下载了,也解决了中文文档无法打包下载的问题。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP4实际应用经验篇(7)
Oct 09 PHP
PHP 数组实例说明
Aug 18 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
php文件上传类完整实例
May 14 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
浅析PHP开发规范
Feb 05 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
PHP文件上传处理案例分析
Oct 15 #PHP
PHP小偷程序的设计与实现方法详解
Oct 15 #PHP
基于php判断客户端类型
Oct 14 #PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 #PHP
php生成与读取excel文件
Oct 14 #PHP
基于PHP实现用户注册登录功能
Oct 14 #PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 #PHP
You might like
谈谈PHP的输入输出流
2007/02/14 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
linux下php上传文件注意事项
2016/06/11 PHP
WAF的正确bypass
2017/01/05 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
再谈javascript原型继承
2014/11/10 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
Python collections模块实例讲解
2014/04/07 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
农行实习自我鉴定
2013/09/22 职场文书
年度考核评语
2014/01/19 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
OpenCV实现普通阈值
2021/11/17 Java/Android
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android