php实现下载问题请教 高手求指点

其中id=downfiles/file01.doc<?php$path=$_GET['id'];//获取文件路径//$path='downfiles/file01.doc... 其中id=downfiles/file01.doc

<?php
$path=$_GET['id']; //获取文件路径
//$path='downfiles/file01.doc';
if(!empty($path) and !is_null($path)) //判断变量是否为空和为null
{
$filename=basename($path); //获取文件名
$file=fopen($path,"r"); //以只读的方式打开文件
header("content-type:application/octet-stream"); //输出MIME类型
header("accept-ranges:bytes"); //接受的范围以字节为单位
header("accept-length:".filesize($path)); //文件长度
header("content-disposition:attachment;filename=".$filename); //默认时,保存对话框中的文件名称
echo fread($file,filesize($path)); //读取文件
fclose($file); //关闭文件
exit; //退出
}
?>

文件file01.doc不存在是自动创建的吗?创建完之后又自动删了吗?
$file=fopen($path,"r"); 文件不存在他是怎么打开的 并且实现下载
展开
 我来答
百度网友f0d674d
2016-06-13 · 超过10用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:12.4万
展开全部

其实不必那么复杂,可以直接如下:

$path=$_GET["id"];
if(file_exists($path) && is_file($path)){ //判断指定文件是否存在
header("content-type:text/html;charset=utf-8"); //声明编码
header("content-disposition:attachment;filename=".basename($path)); //下载文件
header("content-length:".filesize($path)); //下载时显示文件大小
readfile($path); //将指定文件的内容写入到下载文件中
}else{
echo "指定文件不存在或不是有效文件!";
}

 使用fopen打开文件,如果文件不存在,系统会有警告信息

方丈在此c3c741f
2016-06-13 · TA获得超过1790个赞
知道大有可为答主
回答量:1812
采纳率:76%
帮助的人:575万
展开全部
其实 你也可以尝试用a标签 来下载,把文件地址写到 href里去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Janper
2016-06-13 · TA获得超过206个赞
知道小有建树答主
回答量:469
采纳率:0%
帮助的人:137万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式