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的核心Zend
Sep 05 PHP
PHP安全配置
Oct 09 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
Fleaphp常见函数功能与用法示例
Nov 15 PHP
Yii实现复选框批量操作实例代码
Mar 15 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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中取得文件的后缀名?
2012/02/20 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
JavaScript中的面向对象介绍
2012/06/30 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
2019/08/02 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python difflib模块示例讲解
2017/09/13 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
Pycharm github配置实现过程图解
2020/10/13 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
快速创建python 虚拟环境
2020/11/28 Python
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
大学新生军训自我鉴定
2014/03/18 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
家长通知书家长意见
2015/06/03 职场文书
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS