好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

PHP文件下载的小实例 - php上传下载

PHP文件下载的小实例

这个文件下载实例做得非常的详细他是结合header函数与while fread函数把文件分断读出来然后再发送到客户端了,算得上一个标准的文件下载实例。

一个PHP文件下载的小实例

/*======================================================     $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 ;          }     /*================================================      发送下载相关的头部信息     =================================================*/         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 );   }  ?> 

总结: 本下载实例并且支持中文文名了,在文件开头就进行了uft8编码转换了.

查看更多关于PHP文件下载的小实例 - php上传下载的详细内容...

  阅读:71次