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支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
如何使用php实现评委评分器
Jul 31 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
php使用curl伪造浏览器访问操作示例
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-MySQL教程归纳总结
2008/06/07 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
深入php内核之php in array
2015/11/10 PHP
javascript里的条件判断
2007/02/27 Javascript
javascript 继承实现方法
2009/08/26 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
Augularjs-起步详解
2016/07/08 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
python选择排序算法的实现代码
2013/11/21 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
使用PDB简单调试Python程序简明指南
2015/04/25 Python
Python实现LRU算法的2种方法
2015/06/24 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
python实现动态创建类的方法分析
2019/06/25 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
Pytorch中.new()的作用详解
2020/02/18 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
什么是Python包的循环导入
2020/09/08 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
环保建议书600字
2014/05/14 职场文书
小学班主任评语
2014/12/29 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书