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访问查询mysql数据的三种方法
Oct 09 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
实例讲解yii2.0在php命令行中运行的步骤
Dec 01 PHP
php图片添加水印例子
Jul 20 PHP
PHP进程通信基础之信号
Feb 19 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
浅谈laravel中的关联查询with的问题
Oct 10 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 什么是PEAR?(第三篇)
2009/03/19 PHP
PHP 验证码的实现代码
2011/07/17 PHP
php共享内存段示例分享
2014/01/20 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
javascript按顺序加载运行js方法
2017/12/01 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
python链接Oracle数据库的方法
2015/06/28 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python 转义字符详细介绍
2017/03/21 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
家长对孩子的评语
2014/04/18 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
2015年新农合工作总结
2015/03/30 职场文书
设备技术员岗位职责
2015/04/11 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书