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 相关文章推荐
第九节 绑定 [9]
Oct 09 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
windows7下安装php的imagick和imagemagick扩展教程
Jul 04 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
php防止站外远程提交表单的方法
Oct 20 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
php的4种常见运行方式
Mar 20 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 PHP
php面向对象基础详解【星际争霸游戏案例】
Jan 23 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
Ajax PHP简单入门教程代码
2008/04/25 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
js控制框架刷新
2008/08/01 Javascript
javascript 关闭IE6、IE7
2009/06/01 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
Select2.js下拉框使用小结
2016/10/24 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
python设置环境变量的作用整理
2020/02/17 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
python 带时区的日期格式化操作
2020/10/23 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
大学生年度自我鉴定
2013/10/31 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
大学生旷课检讨书
2014/01/22 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书