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数组函数
Aug 18 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
访问编码后的中文URL返回404错误的解决方法
Aug 20 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
PHP动态柱状图实现方法
Mar 30 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 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
通过Email发送PHP错误的方法
2015/07/20 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
用js解决数字不能换行问题
2010/08/10 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue组件name的作用小结
2018/05/23 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
js回溯法计算最佳旅行线路代码实例
2019/09/11 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
python实现识别相似图片小结
2016/02/22 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
总结python中pass的作用
2019/02/27 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Python中qutip用法示例详解
2020/10/02 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
电子商务专业应届毕业生求职信
2014/06/21 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
运动会致辞稿
2015/07/29 职场文书
SQL基础的查询语句
2021/11/11 MySQL