php实现文件下载(支持中文文名)_php实例
May 17, 2016 am 08:52 AM/*======================================================
$FileName 为文件名称,必传
$FilePath 为文件路径.选填,可以为相对路径或者绝对路径
路径只能由英文跟数据组成,不能带有中文
======================================================*/
header("Content-type: text/html;charset=utf-8");
if(strlen($FileName) $FileName=iconv("utf-8","gb2312",$FileName);//进行文件名格式转换,以防中文乱码
//开始判断路径
if(!is_null($FilePath)&&strlen($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);
}
?>

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Python opening operation after downloading the file

How to use Laravel to implement file upload and download functions

How to use PHP functions to upload and download attachments for sending and receiving emails?

Implement file upload and download in Workerman documents

How to trigger file download when clicking HTML button or JavaScript?

How to use Hyperf framework for file downloading

CakePHP middleware: implement file upload and download functions

PHP and CGI file upload and download technology: how to implement file management functions
