首頁 >後端開發 >php教程 >淺談網站檔案下載的原理

淺談網站檔案下載的原理

WBOY
WBOY原創
2016-07-29 09:08:521972瀏覽

       今晚我們來聊聊網站文件下載的原理,下面我結合程式碼來給大家分析。

   function download($file_name){
 header("Content-type:text/html;charset=utf-8");
     ,避免file_exists函數不認識中文!  $file_name = iconv("utf-8","gb2312",$file_name);     
 $path = $_SERVER path.'/'.$file_name;        
// 拼接將下載的檔案的路徑 if(!file_exists($file_path)){

的檔案不存在! ';


 exit();

 }



 // 分享下載的檔案,必須先讀入記憶體

 //// 注意服務端將檔案讀入記憶體當中 
 $fp = fopen($file_path, 'r'); $file_size = filesize($file_path);      /// 取得檔案的總大小
/ PHP的頭
 // 透過這句程式碼用戶端瀏覽器就能知道服務端回傳的檔案形式 

 Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes") ;      
// 說明文件傳輸單位是位元組

 Header("Accept-Length:".$file_size);    
//  因為是http  // 告訴瀏覽器下載傳回的檔案的名稱 
 Header("Content-Disposition: attachment; filename=".$file_name); $buffer = 1024 ;       // 避免造成很大壓力,因此只讀伺服器一次只讀1024位元組伺服器

 $file_count = 0;          // feof:讀取到檔案結尾

 while(!feof($fp / 透過fopen,檔案已經被放入記憶體了!現在從記憶體中讀取fread即下載 
 $file_content = fread($fp, $buffer);        
// $file_content:每次讀到的檔案內容file $uffer$_count +count +$uffer_count +count; ;          
// echo每次讀到的內容,就好比是一點一點的下載
 } fclose($fp);
   }原理,希望會對大家以後做下載方面功能的時候,有些許啟發,那樣就足夠了!

   

以上就介紹了淺談網站檔案下載的原理,包括了方面的內容,希望對PHP教學有興趣的朋友有幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn