複製程式碼 程式碼如下:
function downloadFile($file){
/*Coded by Alessioiod downloadFile($file){
/*Coded by Alessioiomonti> $file_name = $file;
$mime = 'application/force-download';
header('Pragma: public') // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
head ); 'Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
co : binary');
header('Connection: close');
readfile($file_name); // push it out
php將檔案下載下來而不是超連結下載,這樣可以減少盜鏈的情況!將文件給瀏覽器讓瀏覽器下載
以txt類型為例
由於現在的瀏覽器已經可以識別txt文檔格式,如果只給txt文檔做一個文字鏈接的話,點擊後只是打開一個新窗口顯示txt檔案的內容,並不能實現點擊下載的目的。當然這個問題的解決方法也可以是將txt檔案改名為瀏覽器不認識的檔案(例如rar),這樣的話,由於瀏覽器無法辨識rar類型的文件,所以只能讓使用者下載了。還有一種方法,就是利用程式碼透過header設定文檔的格式來達成點擊下載的目的。
PHP程式碼如下:
$filename = '/path/'.$_GET ['file'].'.txt'; //檔案路徑header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".basename ($filename));
readfile($filename);
簡單說明:
第一個header函數設定Content-Type的值為application/force-download;
第二個header函數設定要下載的檔案。注意這裡的filename是不包含路徑的檔名,filename的值將來就是點擊下載後彈出對話框裡面的檔名,如果帶路徑的話,彈出對話框的檔名就是未知的;
最後透過readfile函數,將檔案流輸出到瀏覽器,這樣就實作了txt檔案的下載。