<?php
/**
**file_dir:文件所在的目录
**file_name:文件名
*/
function filedownload($file_dir,$file_name)
{
//让$file_name支持中文
//去掉路径右边中多余的空格
$file_dir=chop($file_dir);
$file_dir=$_SERVER['DOCUMENT_ROOT'].$file_dir;
//如果路径最右边没有/,添加/
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir))!='/')
{
$file_dir .='/';
$file_path =$file_dir.$file_name;
}
else
$file_path =$file_dir.$file_name;
//判断下载文件是否存在
if(!file_exists($file_path))
{
echo '对不起,您要下载的文件不存在。';
return;
}
$file_size=filesize($file_path);
//这里可以根据文件的大小判断用户是否有权限进行下载
//设置响应头
header("content-type: application/octet-stream");
header("accept-ranges: bytes");
header("accept-length: $file_size");
header("content-disposition: attachment; filename=".$file_name);
$fp=fopen($file_path,'r');
//设置读取文件大小
$buffer_size=1024;
//记录读取文件大小
$file_pos=0;
while(!feof($fp) && $file_size-$file_pos>$buffer_size)
{
$buffer=fread($fp,$buffer_size);
$file_pos +=$buffer_size;
echo $buffer;
}
$buffer=fread($fp,$file_size-$file_pos);
echo $buffer;
echo $buffer;
return true;
}
filedownload('/test','HTTP详解.docx');
?>