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的计数器程序
Oct 09 PHP
《PHP编程最快明白》第三讲:php数组
Nov 01 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
php中JSON的使用方法
Apr 30 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
浅谈PHP安全防护之Web攻击
Jan 03 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
Yii redis集合的基本使用教程
Jun 14 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
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
html数组字符串拼接的最快方法
2009/09/16 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
Python中的函数作用域
2018/05/07 Python
python构建指数平滑预测模型示例
2019/11/21 Python
详解python破解zip文件密码的方法
2020/01/13 Python
Django REST framwork的权限验证实例
2020/04/02 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
商务会议邀请函
2014/01/09 职场文书
致1500米运动员广播稿
2014/02/07 职场文书
写求职信有什么意义
2014/02/17 职场文书
标准毕业生自荐信
2014/06/24 职场文书
施工单位安全责任书
2014/07/24 职场文书
户籍证明模板
2014/09/28 职场文书
教师辞职信范文
2015/02/28 职场文书
保留意见审计报告
2015/06/05 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
python如何在word中存储本地图片
2021/04/07 Python
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL