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"); 文件不存在他是怎么打开的 并且实现下载 展开
<?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"); 文件不存在他是怎么打开的 并且实现下载 展开
3个回答
展开全部
其实不必那么复杂,可以直接如下:
$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打开文件,如果文件不存在,系统会有警告信息
展开全部
其实 你也可以尝试用a标签 来下载,把文件地址写到 href里去。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询