php實現檔案下載(支援中文文名)_PHP教程

來源:互聯網
上載者:User
php實現檔案下載(支援中文文名)_PHP教程

/*======================================================  $FileName 為檔案名稱,必傳  $FilePath 為檔案路徑.選填,可以為相對路徑或者絕對路徑      路徑只能由英文跟資料群組成,不能帶有中文 ======================================================*/<?php  header("Content-type: text/html;charset=utf-8"); if(strlen($FileName)<=3){echo "下載失敗:你所以下載的檔案資訊有誤";return;} $FileName=iconv("utf-8","gb2312",$FileName);//進行檔案名稱格式轉換,以防中文亂碼 //開始判斷路徑 if(!is_null($FilePath)&&strlen($FilePath)>1){  if(substr($FilePath,0,1)=='/'){//判斷是否為絕對路徑   $FilePath=$_SERVER['DOCUMENT_ROOT'].$FilePath;    }  if(substr($FilePath,-1)!="/"){//檢查最後是否為 / 結尾   $FilePath=$FilePath.'/';    }  if(is_numeric(strpos($FilePath,":\"))){//檢查是否為絕對路徑   $FilePath=str_replace("/","\",$FilePath);    }   }elseif(strlen($FilePath)==1&&$FilePath!="/"){    $FilePath=$FilePath."/";   }else{    $FilePath="";  }  if(!file_exists($FilePath.$FileName)){   echo"下載失敗:所要下載的檔案未找到";return;   }  /*================================================   發送下載相關的頭部資訊  =================================================*/  header("Content-type: application/octet-stream");  header("Accept-Ranges: bytes");//按照位元組大小返回  header("Accept-Length: $FileSize");//返迴文件大小  header("Content-Disposition: attachment; filename=".$FileName);//這裡用戶端的彈出對話方塊,對應的檔案名稱  /*================================================   開始下載相關  =================================================*/ $FileSize=filesize($FilePath.$FileName);  $File=fopen($FilePath.$FileName,"r");//開啟檔案  $FileBuff=512;  while($FileSize>=0){   $FileSize-=$FileBuff;   echo fread($File,$FileBuff);  }  fclose($File); }?>

以上就是php實現檔案下載(支援中文文名)_PHP教程的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.