php开发 文件下载类
最简单的六步 1.$fileName = iconv("UTF-8","GB2312",$fileName); //中文文件名解析
2. header("content-type:text/html;charset-utf-8"); //设置字符集
3. header("content-disposition: attachment; filename=".$fileName); //告诉浏览器,这是一个附件
4. $fileSize = filesize($filePath); //获取文件的大小
5. header("content-length:".$fileSize); //告诉浏览器文件的大小
6. readfile($filePath); //读取出内容
文件下载类 public function downFile()
{
header("Content-Type:text/html; charset=gb2312");
if(isset($_GET["file_url"]))
{
$filePath =$_GET["file_url"];
$name=basename($filePath);
$file_name=$_SERVER["DOCUMENT_ROOT"]."/".$filePath;
$file_name=iconv("utf-8","gb2312",$file_name);//中文转码
//1.打开文件
if(!file_exists($file_name)){
echo "文件不存在";
} else {
$fp=fopen($file_name,"rb");
ob_clean();
//2、获取文件大小
$file_size=filesize($file_name);
header("Content-type: application/octet-stream");//告诉浏览器返回的是文件数据
header("Accept-Ranges: bytes");//以字节方式返回
header("Accept-Length: $file_size");//
//3.客户端弹出的对话框的文件名称
header("Content-Disposition: attachment; filename=".$name);
//4、读取到缓存
$buffer=1024;
$file_count=0;
while(!feof($fp) && $file_size-$file_count>0)//文件未到结尾
{
$file_data=fread($fp,$buffer);
$file_count+=strlen($data);
echo $file_data;
}
//6.关闭
fclose($fp);
}
}else{
echo "文件不存在";
}
}
- 上一篇: php打包下载文件
- 下一篇: yii中的几项基本操作(布局、指定访问方法、解决400错误)