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 相关文章推荐
利用 window_onload 实现select默认选择
Oct 09 PHP
php时间不正确的解决方法
Apr 09 PHP
PHP 反射机制实现动态代理的代码
Oct 22 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
PHP5 字符串处理函数大全
Mar 23 PHP
基于initPHP的框架介绍
Apr 18 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php中关于socket的系列函数总结
May 18 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
详解jQuery简单的表格应用
2016/12/16 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
利用Python计算KS的实例详解
2020/03/03 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
介绍Java的内部类
2012/10/27 面试题
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
幼儿教师工作感言
2014/02/14 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
2015年教学工作总结
2015/04/02 职场文书
新人入职感言
2015/07/31 职场文书
办公室日常管理制度
2015/08/04 职场文书
公司董事任命书
2015/09/21 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
详细了解java监听器和过滤器
2021/07/09 Java/Android