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 UTF8 文件的签名问题
Oct 30 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
Sep 26 PHP
php可变长参数处理函数详解
Feb 22 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 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
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
详解vue 命名视图
2019/08/14 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
Python延时操作实现方法示例
2018/08/14 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
django使用xadmin的全局配置详解
2019/11/15 Python
浅谈Python中的模块
2020/06/10 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
展览会邀请函
2015/02/02 职场文书
西岭雪山导游词
2015/02/06 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python