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 smarty模版引擎中的缓存应用
Dec 11 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
解决File size limit exceeded 错误的方法
Jun 14 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP计算加权平均数的方法
Jul 16 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 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的一些小问题
2010/07/03 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
PHP实现简易计算器功能
2020/08/28 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
简单谈谈关于 npm 5.0 的新坑
2017/06/08 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python实现带百分比的进度条
2016/06/28 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
2019/01/02 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
YII2 全局异常处理深入讲解
2021/03/24 PHP
应届生船舶驾驶求职信
2013/10/19 职场文书
写好自荐信要注意的问题
2013/11/10 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
企业军训感言
2014/02/08 职场文书
小学班级特色活动方案
2014/08/31 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
创业计划书之养殖业
2019/10/11 职场文书