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相关资料
Oct 09 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
php模板函数 正则实现代码
Oct 15 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP header()函数常用方法总结
Apr 11 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
ThinkPHP3.1基础知识快速入门
Jun 19 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
关于php中一些字符串总结
May 05 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
php mysql实现mysql_select_db选择数据库
Dec 30 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 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中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
PHP图片加水印实现方法
2016/05/06 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
python解析json实例方法
2013/11/19 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
有趣的python小程序分享
2017/12/05 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
J2EE模式面试题
2016/10/11 面试题
岗位廉洁从政承诺书
2014/03/27 职场文书
好学生评语大全
2014/05/05 职场文书
法定授权委托证明书
2014/09/27 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers