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 无限级缓存的类的扩展
Mar 16 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
php对数组排序的简单实例
Dec 25 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
php+mysql实现的无限分类方法类定义与使用示例
May 27 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使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
28个JS验证函数收集
2010/03/02 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
python调试神器PySnooper的使用
2019/07/03 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
为什么使用接口?
2014/08/13 面试题
大家检讨书5000字
2014/02/03 职场文书
高中生家长寄语大全
2014/04/03 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
小学英语复习计划
2015/01/19 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
2019各种承诺书范文
2019/06/24 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python