php实现简单文件下载的方法


Posted in PHP onJanuary 30, 2015

本文实例讲述了php实现简单文件下载的方法。分享给大家供大家参考。具体如下:

这里介绍的php文件下载代码,只是简单实现了一张图片的下载功能,还不完善,最好是封装到一个类里,或是采用函数调用。感兴趣的朋友可以在此基础上加以完善!

php文件下载代码如下:

<?php
$file_name = "2.jpg";//需要下载的图片
define("SPATH","/php/image/");//存放图片的相对路径
$file_sub_path = $_SERVER['DOCUMENT_ROOT'];//网站根目录的绝对地址
$file_path = $file_sub_path.SPATH.$file_name;//图片绝对地址,即前面三个连接
//判断文件是否存在
if(!file_exists($file_path)){
 echo "该文件不存在";
 return;
}
$fp = fopen($file_path,"r");//打开文件
$file_size = filesize($file_path);//获取文件大小
/*
*下载文件需要用到的header
*/
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:".$file_size);
header("Content-Disposition:attachment;filename=".$file_name);

$buffer=1024;
$file_count=0;
//向浏览器返回数据
while(!feof($fp) && $file_count<$file_size){
 $file_con = fread($fp,$buffer);
 $file_count += $buffer;
 echo $file_con;//这里如果不echo,只会下载到0字节的文件
}
fclose($fp);
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP Pear 安装及使用
Mar 19 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
php Session存储到Redis的方法
Nov 04 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
thinkphp循环结构用法实例
Nov 24 PHP
Web程序工作原理详解
Dec 25 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
24条货真价实的PHP代码优化技巧
Jul 28 PHP
php实现微信支付之退款功能
May 30 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 #PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 #PHP
PHP速成大法
Jan 30 #PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 #PHP
PHP制作百度词典查词采集器
Jan 29 #PHP
php+mysqli事务控制实现银行转账实例
Jan 29 #PHP
php+mysqli批量查询多张表数据的方法
Jan 29 #PHP
You might like
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
用Simple Excel导出xls实现方法
2012/12/06 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
短信提示使用 特效
2007/01/19 Javascript
jquery $.ajax入门应用二
2008/11/19 Javascript
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
python装饰器的特性原理详解
2019/12/25 Python
Python实现图片识别加翻译功能
2019/12/26 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
大一自我鉴定范文
2013/10/04 职场文书
艺术爱好者的自我评价分享
2013/10/08 职场文书
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
共产党员承诺书
2014/03/25 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
大学生求职意向书
2015/05/11 职场文书
运动会通讯稿300字
2015/07/20 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
如何在Python中创建二叉树
2021/03/30 Python