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中使用XML
Oct 09 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
php 获取当前访问的url文件名的方法小结
Feb 08 PHP
php 生成随机验证码图片代码
Feb 08 PHP
centos 5.6 升级php到5.3的方法
May 14 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
微信第三方登录(原生)demo【必看篇】
May 26 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
PHP入门学习笔记之一
2010/10/12 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
python网络爬虫采集联想词示例
2014/02/11 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
基于python实现聊天室程序
2018/07/27 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
舞蹈比赛获奖感言
2014/02/04 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
2014年国培研修感言
2014/03/09 职场文书
毕业生就业意向书
2014/04/01 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL