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 相关文章推荐
smtp邮件发送一例
Oct 09 PHP
基于PHP文件操作的详解
Jun 05 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 PHP
Laravel下生成验证码的类
Nov 15 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
PHP递归算法的简单实例
Feb 28 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
Joomla框架实现字符串截取的方法示例
2017/07/18 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
再谈javascript原型继承
2014/11/10 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python continue语句用法实例
2014/03/11 Python
python中bytes和str类型的区别
2019/10/21 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
python列表返回重复数据的下标
2020/02/10 Python
Python os模块常用方法和属性总结
2020/02/20 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
优秀的自荐信要注意哪些
2014/01/03 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
答谢词范文
2015/01/05 职场文书
人事文员岗位职责
2015/02/04 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
小学中队长竞选稿
2015/11/20 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python