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 相关文章推荐
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
php stream_get_meta_data返回值
Sep 29 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
php实现RSA加密类实例
Mar 26 PHP
浅析iis7.5安装配置php环境
May 10 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
PHP将整数数字转换为罗马数字实例分享
Mar 17 PHP
php异常处理捕获错误整理
Sep 23 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
php中rename函数用法分析
2014/11/15 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
PDO实现学生管理系统
2020/03/21 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
javascript中&quot;/&quot;运算符常见错误
2010/10/13 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python提示No module named images的解决方法
2014/09/29 Python
用Python实现一个简单的线程池
2015/04/07 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
积极分子思想汇报
2014/01/04 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
日语系毕业求职信
2014/07/27 职场文书
2014年项目工作总结
2014/11/24 职场文书
2014年纠风工作总结
2014/12/08 职场文书
生活委员竞选稿
2015/11/21 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书