php实现文件下载代码~

程序如下
<?php
$root="d:/";
if(is_dir($root)){
$openHandle=opendir("d:/");
while(false!==($file=readdir($openHandle))){
echo "<a href='$file'>".$file."</a>";
echo "<br>";
}
closedir($openHandle);
}
else {
echo "文件夹不存在";
}

?>

运行之后浏览器列出了D盘根目录下所有的文件及文件夹,但是我单击了某个文件链接时显示“http 404 未找到”,正确的话应该是显示浏览器自带的下载文件的对话框,我这哪里有错呢,还请各位高手帮忙!!感激不尽!!!

echo "<a href='$file'>".$file."</a>"需要绝对路径,而且注意目录是不可以下载的。
<?php
$root="d:/";
if(is_dir($root)){
$openHandle=opendir($root);
while(false!==($file=readdir($openHandle))){
if(!is_dir($root.$file))
echo "<a href='$root$file'>".$file."</a><br/>";

}
closedir($openHandle);
}
else {
echo "文件夹不存在";
}

?>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-01
echo $file
测试一下文件的路径对不对,可以是相对路径,但不可以是绝对路径,绝对路径就变成下载本地文件了
第2个回答  2019-01-22
echo
"<a
href='$file'>".$file."</a>"需要绝对路径,而且注意目录是不可以下载的。
<?php
$root="d:/";
if(is_dir($root)){
$openHandle=opendir($root);
while(false!==($file=readdir($openHandle))){
if(!is_dir($root.$file))
echo
"<a
href='$root$file'>".$file."</a><br/>";
}
closedir($openHandle);
}
else
{
echo
"文件夹不存在";
}
?>