PHP实现文件下载

php怎么实现文件的下载?代码越简单越好。不需要特别功能,只要能用。... php怎么实现文件的下载?代码越简单越好。不需要特别功能,只要能用。 展开
 我来答
xiii130
2013-08-20 · 知道合伙人软件行家
xiii130
知道合伙人软件行家
采纳数:817 获赞数:2867
爱好编程,在工作中积累了比较丰富的经验。愿与大家共同进步。

向TA提问 私信TA
展开全部

2种方法

1直接做个超链接,地址为文件的地址

<a href="文件地址">下载</a>


2流输出

<?php
$file=fopen('文件地址',"r");
header("Content-Type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: ".filesize('文件地址'));
header("Content-Disposition: attachment; filename=文件名称");
echo fread($file,filesize('文件地址'));
fclose($file);
?>

推荐第二种


因为第一种方法只能下载浏览器不能解析的文件,比如rar啊,脚本文件之类。如果文件是图片或者txt文档,就会直接在浏览器中打开


而第二种方法是直接输出的文件流,不存在上述问题

更多追问追答
追问
第二种方法的是指文件所在目录(例:http://www.baidu.com/download/)还是文件路径(例:http://www.baidu.com/download/1.exe)?
追答
这里的文件地址指的是  服务器上的文件所在位置(包括文件名及后缀)
可以使用相对路径,也可以使用绝对路径,也可以使用网址远程访问
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
陇行
2015-07-19 · 专注人文,社科,生活,幽默,历史,杂谈
陇行
采纳数:354 获赞数:2498

向TA提问 私信TA
展开全部
php下载文件的流程:

我们向浏览器发送一个请求,访问服务器中的某个网页(如:download.php),服务器接受到该请求以后,运行该php文件 ,运行中就会把希望下载的文件(aa.rar)读入内存,但是如果文件较大,就要准备分成多段返回给客户端的(这样最可靠)。
需要在php代码中设置一次读取的字节数,比如在下面的代码中通过$buffer=1024设置一次读取的字节数,每读取一次,就输出数据(即返回给浏览器)

如下:下载文件用的php文件,和放在同一个目录的下载文件aa.rar
download.php代码和解释
<?php
$file_name="aa.rar";//需要下载的文件
$file_name=iconv("utf-8","gb2312","$file_name");
$fp=fopen($file_name,"r+");//下载文件必须先要将文件打开,写入内存
if(!file_exists($file_name)){//判断文件是否存在
echo "文件不存在"; //如果不存在
exit(); //直接退出
} //如果存在,继续执行下载
$file_size=filesize("aa.rar");//判断文件大小
//返回的文件
Header("Content-type: application/octet-stream");
//按照字节格式返回
Header("Accept-Ranges: bytes");
//返回文件大小
Header("Accept-Length: ".$file_size);
//弹出客户端对话框,对应的文件名
Header("Content-Disposition: attachment; filename=".$file_name);
//防止服务器瞬时压力增大,分段读取
$buffer=1024;
while(!feof($fp)){
$file_data=fread($fp,$buffer);
echo $file_data;
}
//关闭文件
fclose($fp);
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MarkGo
2013-08-20 · 测试API接口使用的啊1
MarkGo
采纳数:257 获赞数:427

向TA提问 私信TA
展开全部
能表达清楚点吗?
是PHP去下载远程的东西还是?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式