PHP如何實現(xiàn)文件下載?
首先使用“header”函數(shù)指定下載文件類型,下載文件的描述以及下載文件的大?。唤又褂煤瘮?shù)“readfile”將文件內(nèi)容讀取出來并直接輸出;最后結(jié)束腳本即可。
示例代碼
<?php $filename = "test.gif"; header('Content-Type:image/gif'); //指定下載文件類型 header('Content-Disposition: attachment; filename="'.$filename.'"'); //指定下載文件的描述 header('Content-Length:'.filesize($filename)); //指定下載文件的大小 //將文件內(nèi)容讀取出來并直接輸出,以便下載 readfile($filename); ?>
中文名
<?php header("Content-type:text/html;charset=utf-8"); // $file_name="cookie.jpg"; $file_name="圣誕狂歡.jpg"; //用以解決中文不能顯示出來的問題 $file_name=iconv("utf-8","gb2312",$file_name); $file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/"; $file_path=$file_sub_path.$file_name; //首先要判斷給定的文件存在與否 if(!file_exists($file_path)){ echo "沒有該文件文件"; return ; } $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; $file_count=0; //向瀏覽器返回數(shù)據(jù) while(!feof($fp) && $file_count<$file_size){ $file_con=fread($fp,$buffer); $file_count+=$buffer; echo $file_con; } fclose($fp); ?>
推薦教程:《PHP》