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+mysql)
Nov 23 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
Oct 22 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 PHP
谈谈 PHP7新增功能
Dec 16 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
在laravel中实现事务回滚的方法
Oct 10 PHP
PHP常量及变量区别原理详解
Aug 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
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
用定制的PHP应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php&amp;mysql 日期操作小记
2012/02/27 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
python发送伪造的arp请求
2014/01/09 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
中学生自我鉴定
2014/02/04 职场文书
2014年项目工作总结
2014/11/24 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
酒店前台岗位职责
2015/04/16 职场文书
新员工入职感想
2015/08/07 职场文书
学前班教学反思
2016/02/24 职场文书
Redis高可用集群redis-cluster详解
2022/03/20 Redis