国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP文件下載的小實例

2024-09-04 11:44:45
字體:
來源:轉載
供稿:網友

這個文件下載實例做得非常的詳細他是結合header函數與while fread函數把文件分斷讀出來然后再發送到客戶端了,算得上一個標準的文件下載實例。

一個PHP文件下載的小實例

  1. /*====================================================== 
  2.   $FileName 為文件名稱,必傳 
  3.   $FilePath 為文件路徑.選填,可以為相對路徑或者絕對路徑 
  4.       路徑只能由英文跟數據組成,不能帶有中文 
  5.             如有問題 歡迎聯系博主指出 
  6.  ======================================================*/ 
  7.  代碼如下 復制代碼 
  8. <?php  
  9.  header("Content-type: text/html;charset=utf-8"); 
  10.  if(strlen($FileName)<=3){echo "下載失敗:你所以下載的文件信息有誤";return;} 
  11.  $FileName=iconv("utf-8","gb2312",$FileName);//進行文件名格式轉換,以防中文亂碼 
  12.  //開始判斷路徑 
  13.  if(!is_null($FilePath)&&strlen($FilePath)>1){ 
  14.    
  15.   if(substr($FilePath,0,1)=='/'){//判斷是否為絕對路徑 
  16.    
  17.    $FilePath=$_SERVER['DOCUMENT_ROOT'].$FilePath
  18.     
  19.     } 
  20.   if(substr($FilePath,-1)!="/"){//檢查最后是否為 / 結尾 
  21.    
  22.    $FilePath=$FilePath.'/'
  23.     
  24.     } 
  25.   if(is_numeric(strpos($FilePath,":/"))){//檢查是否為絕對路徑 
  26.    
  27.    $FilePath=str_replace("/","/",$FilePath); 
  28.     
  29.     } 
  30.    }elseif(strlen($FilePath)==1&&$FilePath!="/"){ 
  31.      
  32.     $FilePath=$FilePath."/"
  33.      
  34.    }else
  35.      
  36.     $FilePath=""
  37.      
  38.   } 
  39.   if(!file_exists($FilePath.$FileName)){ 
  40.     
  41.    echo"下載失敗:所要下載的文件未找到";return
  42.     
  43.    } 
  44.   /*================================================ 
  45.    發送下載相關的頭部信息 
  46.   =================================================*/ 
  47.    
  48.   header("Content-type: application/octet-stream"); 
  49.    
  50.   header("Accept-Ranges: bytes");//按照字節大小返回 
  51.    
  52.   header("Accept-Length: $FileSize");//返回文件大小 
  53.    
  54.   header("Content-Disposition: attachment; filename=".$FileName);//這里客戶端的彈出對話框,對應的文件名 
  55.    
  56.   /*================================================ 
  57.    開始下載相關 
  58.   =================================================*/  
  59. $FileSize=filesize($FilePath.$FileName); 
  60.    
  61.   $File=fopen($FilePath.$FileName,"r");//打開文件 
  62.    
  63.   $FileBuff=512; 
  64.    
  65.   while($FileSize>=0){ 
  66.     
  67.    $FileSize-=$FileBuff
  68.     
  69.    echo fread($File,$FileBuff); 
  70.     
  71.   } 
  72.     
  73.   fclose($File); 
  74.  } 
  75. ?> 

總結:本下載實例并且支持中文文名了,在文件開頭就進行了uft8編碼轉換了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝感市| 曲阳县| 关岭| 沧州市| 虹口区| 合水县| 瑞昌市| 文登市| 邛崃市| 托克逊县| 中牟县| 康定县| 永登县| 苗栗县| 红河县| 阿图什市| 中西区| 平江县| 龙南县| 句容市| 海城市| 安西县| 樟树市| 巩留县| 凉城县| 九龙县| 色达县| 宁南县| 刚察县| 类乌齐县| 景东| 阿克陶县| 灵石县| 博客| 大足县| 赣榆县| 湖南省| 炎陵县| 荣成市| 金溪县| 惠州市|