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+DBM的同学录程序(5)
Oct 09 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
php获取当前月与上个月月初及月末时间戳的方法
Dec 05 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 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数组中删除元素之重新索引的方法
2014/09/16 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
JS实现留言板功能
2017/06/17 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
python逆序打印各位数字的方法
2018/06/25 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
python 将Excel转Word的示例
2021/03/02 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
德国户外商店:eXXpozed
2020/07/25 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
西部世纪.net笔试题面试题
2014/04/03 面试题
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
教师实习自我鉴定
2013/12/14 职场文书
库房管理员岗位职责
2014/03/09 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
redis protocol通信协议及使用详解
2022/07/15 Redis