PHP實現安全下載檔案的方法及執行個體

來源:互聯網
上載者:User
這篇文章主要介紹了PHP安全下載檔案的方法,涉及PHP檔案的編碼設定,轉換,判斷及下載的相關技巧,需要的朋友可以參考下

具體如下:

<?phpheader('Content-Type:text/html;Charset=utf-8');define('ROOT_PATH', dirname(__FILE__));/** * 下載檔案 * @param string $file_path 絕對路徑 */function downFile($file_path) {  //判斷檔案是否存在  $file_path = iconv('utf-8', 'gb2312', $file_path); //對可能出現的中文名稱進行轉碼  if (!file_exists($file_path)) {    exit('檔案不存在!');  }  $file_name = basename($file_path); //擷取檔案名稱  $file_size = filesize($file_path); //擷取檔案大小  $fp = fopen($file_path, 'r'); //以唯讀方式開啟檔案  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;  //判斷檔案是否結束  while (!feof($fp) && ($file_size-$file_count>0)) {    $file_data = fread($fp, $buffer);    $file_count += $buffer;    echo $file_data;  }  fclose($fp); //關閉檔案}downFile(ROOT_PATH . '/down/Sunset.jpg');?>

說明:檔案名稱可以接受中文名稱。檔案格式為 utf-8。

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.