关于文件下载
以下就是一个文件下载系统,我把它简单的封装成一个函数;
fuction file_down( $file_name ){
$file_name = iconv( " utf-8 " , " gb2312 " , $file_name ); //这里把uft-8转成gb2313码,因为中文文件名的关系;
$file_path = $_SERVER[ ' DOCUMENT_ROOT ' ] . / xxx / . $file_name ; //这里定义绝对路径,有需要也可以改成相对路径;
if( ! file_exists( $file_path ) ){
die( " 文件不存在 " ); //这里判断文件是否存在,不存在则结束;
}
$fp = fopen( $file_path , " r " ) ; //以只读的方式打开文件;
$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 " ) ; //客户端下载弹出框所对应的名称;
//向客户端回送数据;
$buffer = 1024 ; //这里定义一个控制每次下载字节的数量;
//这句话用于判断文件是否结束;feof函数会判断指针是否到文件最后的位置;
while( feof( $fp ) ){
fread( $fp , $buffer ) ; //以每次输送$buffer数量的字节传输;
}
fcolse( $fp ); //关闭文件;
}