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之COOKIE支持详解
Sep 20 PHP
PHP中防止SQL注入实现代码
Feb 19 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
php微信公众号开发之秒杀
Oct 20 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
May 06 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 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之变量、常量学习笔记
2008/03/27 PHP
php实现的ping端口函数实例
2014/11/12 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
pandas取出重复数据的方法
2019/07/04 Python
pygame实现打字游戏
2021/02/19 Python
Python JSON编解码方式原理详解
2020/01/20 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
python对execl 处理操作代码
2020/06/22 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
高中毕业的自我鉴定
2013/12/09 职场文书
办公室前台岗位职责范本
2013/12/10 职场文书
森林病虫害防治方案
2014/06/02 职场文书
干部对照检查材料范文
2014/08/26 职场文书
zabbix监控mysql的实例方法
2021/06/02 MySQL
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python