复制代码 代码如下:
/*======================================================
$filename 为文件名称,必传
$filepath 为文件路径.选填,可以为相对路径或者绝对路径
路径只能由英文跟数据组成,不能带有中文
======================================================*/
1){
if(substr($filepath,0,1)=='/'){//判断是否为绝对路径
$filepath=$_server['document_root'].$filepath;
}
if(substr($filepath,-1)!=/){//检查最后是否为 / 结尾
$filepath=$filepath.'/';
}
if(is_numeric(strpos($filepath,:\))){//检查是否为绝对路径
$filepath=str_replace(/,\,$filepath);
}
}elseif(strlen($filepath)==1&&$filepath!=/){
$filepath=$filepath./;
}else{
$filepath=;
}
if(!file_exists($filepath.$filename)){
echo下载失败:所要下载的文件未找到;return;
}
/*================================================
发送下载相关的头部信息
=================================================*/
header(content-type: application/octet-stream);
header(accept-ranges: bytes);//按照字节大小返回
header(accept-length: $filesize);//返回文件大小
header(content-disposition: attachment; filename=.$filename);//这里客户端的弹出对话框,对应的文件名
/*================================================
开始下载相关
=================================================*/
$filesize=filesize($filepath.$filename);
$file=fopen($filepath.$filename,r);//打开文件
$filebuff=512;
while($filesize>=0){
$filesize-=$filebuff;
echo fread($file,$filebuff);
}
fclose($file);
}
?>