深圳市一览网络股份有限
公司
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
;