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 相关文章推荐
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
基于php split()函数的用法详解
Jun 05 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
php导入csv文件碰到乱码问题的解决方法
Feb 10 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
php输出图像的方法实例分析
Feb 16 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP实现随机发扑克牌
Apr 22 PHP
实例化php类时传参的方法分析
Jun 05 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大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
2013/10/24 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
python flask 多对多表查询功能
2017/06/25 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
通信工程专业毕业生推荐信
2013/12/25 职场文书
会计顶岗实习心得
2014/01/25 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
校园运动会广播稿
2014/10/06 职场文书
上课说话检讨书
2015/01/27 职场文书
单位考核鉴定意见
2015/06/05 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
小学班主任研修日志
2015/11/13 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js