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的无限分类实现想法~
Jan 02 PHP
php入门教程 精简版
Dec 13 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
php微信开发之谷歌测距
Jun 14 PHP
Laravel框架自定义验证过程实例分析
Feb 01 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 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
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
php微信公众号开发之简答题
2018/10/20 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
javascript工具库代码
2012/03/29 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python实现感知机(PLA)算法
2017/12/20 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Python实现快速计算词频功能示例
2018/06/25 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
新学期决心书
2014/03/11 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
工作一年自我鉴定
2019/06/20 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
全网非常详细的pytest配置文件
2022/07/15 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python