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文件下载类
Dec 06 PHP
PHP操作xml代码
Jun 17 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
php selectradio和checkbox默认选择的实现方法详解
Jun 29 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
分析php://output和php://stdout的区别
May 06 PHP
PHP封装请求类实例分析【基于Yii框架】
Oct 17 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 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
windows xp下安装pear
2006/12/02 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
javascript中this的四种用法
2015/05/11 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
jquery简易手风琴插件的封装
2020/10/13 jQuery
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
python实现简单的TCP代理服务器
2014/10/08 Python
python提取内容关键词的方法
2015/03/16 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
如何通过python计算圆周率PI
2020/11/11 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
客服专员岗位职责
2014/02/28 职场文书
小学语文课后反思精选
2014/04/25 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
大学学生个人总结
2015/02/15 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
python 如何在list中找Topk的数值和索引
2021/05/20 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android