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可逆加密函数(分享)
Jun 06 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
主流PHP框架的优缺点对比分析
Dec 25 PHP
PHP发送短信代码分享
Aug 11 PHP
zen_cart实现支付前生成订单的方法
May 06 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
python备份文件的脚本
2008/08/11 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python自定义线程类简单示例
2018/03/23 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
Python xlwt模块使用代码实例
2020/06/10 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
旷课检讨书大全
2014/01/21 职场文书
免职通知
2015/04/23 职场文书
八年级历史教学反思
2016/02/19 职场文书
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android