background image

深圳市一览网络股份有限
公司
ShenZhen Elanw Network 

Co.,Ltd.

地址:南山科技园南区数字技术园
B2 栋 4A 
Add: Room A,4th Floor,Block 
B2,Digi-Tech Park ,

电话(Tel):0755-86133725
传真(Fax):0755-22632616
网址
(Web):www.YL1001.com

 

这个下载实例结合

header 函数与

while

 

fread

函数把文件分断读出来然后再发送到客户端了,支持中文文名,算得上一个标准的文件下载实例
代码如下

:

 

 

/*======================================================

  

$FileName 为文件名称,必传

  

$FilePath 为文件路径.选填,可以为相对路径或者绝对路径

      

路径只能由英文跟数据组成

,不能带有中文

 

======================================================*/

<?php 

 

header("Content-type: text/html;charset=utf-8");

 

if

(

strlen

(

$FileName

)<=3){

echo

 "下载失败:你所以下载的文件信息有误";

return

;}

 

$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

;