php实现文件下载实例分享


Posted in PHP onJune 02, 2014

举一个案例:

<?php
class Downfile {    function downserver($file_name){
$file_path = "./img/".$file_name;
//转码,文件名转为gb2312解决中文乱码
$file_name = iconv("utf-8","gb2312",$file_name);
$file_path = iconv("utf-8","gb2312",$file_path);
$fp = fopen($file_path,"r") or exit("文件不存在");
//定义变量空着每次下载的大小
$buffer = 1024;
//得到文件的大小
$file_size = filesize($file_path);
//header("Content-type:text/html;charset=gb2312");
//会写用到的四条http协议信息
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");//可以忽略
header("Content-Length: ".$file_size);//原文这里是Accept-Length经查阅http协议无此项
header("Content-Disposition:attachment;filename=".$file_name);
//字节技术器,纪录当前现在字节数
$count = 0;
while(!feof($fp) && $file_size-$count>0){
//从$fp打开的文件流中每次读取$buffer大小的数据
$file_data = fread($fp,$buffer);
$count+=$buffer;
//将读取到的数据读取出来
echo $file_data;
}
//关闭文件流
fclose($fp);
    }
   }
?>

调用这个函数传入文件名就能对文件实现下载,不过要注意修改$file_path

PHP 相关文章推荐
[原创]效率较高的php下读取文本文件的代码
Jul 02 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
php目录拷贝实现方法
Jul 10 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 PHP
php+js实现异步图片上传实例分享
Jun 02 #PHP
php实例分享之html转为rtf格式
Jun 02 #PHP
php 伪静态之IIS篇
Jun 02 #PHP
php伪静态之APACHE篇
Jun 02 #PHP
50个PHP程序性能优化的方法
Jun 02 #PHP
浅谈php扩展imagick
Jun 02 #PHP
PHP小技巧之函数重载
Jun 02 #PHP
You might like
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
javascript document.compatMode兼容性
2010/02/23 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
详解JavaScript中的坐标和距离
2019/05/27 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python使用knn实现特征向量分类
2018/12/26 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
体育学院毕业生自荐信
2013/11/03 职场文书
伦敦奥运会口号
2014/06/13 职场文书
销售人员求职信
2014/07/22 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
计划生育汇报材料
2014/12/26 职场文书
幼师求职自荐信
2015/03/26 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书