一般我們作檔案上傳都直接透過 <a> 的 href 直接連結檔案,但隨著瀏覽器的進步,許多瀏覽器會預設為使用者直接開啟檔案,使的一般使用者不知道該如何下載檔案,因此就必須透過 PHP HEADER 作一個簡單的下載檔案的 function。
首先我們將這個小程式命名為 downloadFile.php,程式碼如下:
而在 Client 端的程式碼中的標籤 <a> 的 href 則要改為以下:
<a href="downloadfile.php?file=檔名.副檔名">Download</a>
最後提醒大家處理檔案下載要注意以下幾點:
只要注意處理以上的問題,就可以安全又簡單方便地下載檔案囉!
首先我們將這個小程式命名為 downloadFile.php,程式碼如下:
- <?php
- if( isset($_GET['file']) ) {
- header( "Content-type:application" );
- header( "Content-Length: " .(string)(filesize($_GET['file'])) );
- header( "Content-Disposition: attachment; filename=".$_GET['file'] );
- readfile( $_GET['file'] );
- } // if
- ?>
而在 Client 端的程式碼中的標籤 <a> 的 href 則要改為以下:
<a href="downloadfile.php?file=檔名.副檔名">Download</a>
最後提醒大家處理檔案下載要注意以下幾點:
- 檔案是否確實存在
- 若檔案不存在要處理例外以免暴露 Server 的資訊
- 檔案格式是否符合規格,該用怎樣的Content-Type解析檔案
只要注意處理以上的問題,就可以安全又簡單方便地下載檔案囉!
沒有留言:
張貼留言