|
舉一個(gè)案例:
復(fù)制代碼 代碼如下:
<?php
class Downfile {
function downserver($file_name){
$file_path = "./img/".$file_name;
//轉(zhuǎn)碼,文件名轉(zhuǎn)為gb2312解決中文亂碼
$file_name = iconv("utf-8","gb2312",$file_name);
$file_path = iconv("utf-8","gb2312",$file_path);
$fp = fopen($file_path,"r") or exit("文件不存在");
//定義變量空著每次下載的大小
$buffer = 1024;
//得到文件的大小
$file_size = filesize($file_path);
//header("Content-type:text/html;charset=gb2312");
//會(huì)寫(xiě)用到的四條http協(xié)議信息
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");//可以忽略
header("Content-Length: ".$file_size);//原文這里是Accept-Length經(jīng)查閱http協(xié)議無(wú)此項(xiàng)
header("Content-Disposition:attachment;filename=".$file_name);
//字節(jié)技術(shù)器,紀(jì)錄當(dāng)前現(xiàn)在字節(jié)數(shù)
$count = 0;
while(!feof($fp) && $file_size-$count>0){
//從$fp打開(kāi)的文件流中每次讀取$buffer大小的數(shù)據(jù)
$file_data = fread($fp,$buffer);
$count+=$buffer;
//將讀取到的數(shù)據(jù)讀取出來(lái)
echo $file_data;
}
//關(guān)閉文件流
fclose($fp);
}
}
?>
調(diào)用這個(gè)函數(shù)傳入文件名就能對(duì)文件實(shí)現(xiàn)下載,不過(guò)要注意修改$file_path
php技術(shù):php實(shí)現(xiàn)文件下載實(shí)例分享,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。