php點選下載txt檔案
阿新 • • 發佈:2019-02-10
由於現在的瀏覽器已經可以識別格式為txt的文件格式,所以如果只是給txt文件做一個文字連結的話,可能只是開啟一個新視窗顯示txt檔案的內容,並不能實現點選下載的目的。We have to do something else.
當然這個問題的解決辦法也可以是你將你的txt檔案改名為瀏覽器不認識的檔案,比如rar,這樣的話點選,瀏覽器不認識就只好讓使用者下載了。
下面這個檔案就是通過設定header設定文件的格式來實現點選下載的目的,將上個頁面傳遞過來的檔案點選可以下載。
<?php$filename="/somepath/".$_GET['file'].".txt"; //要下載的檔名
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($filename));
readfile($filename);
?>
首先:設定Content-Type的值為application/force-download,強制下載?是這個意思嗎?
接著第二個header函式設定了要下載的檔案,注意這裡filename是不包含路徑的檔名,所以用basename過濾掉路徑名。這個filename的值將來就是點選下載後彈出對話方塊裡面的檔名,如果帶路徑的話,彈出對話方塊的檔名就是未知的,這個要注意,我就犯了這個錯誤,後來憑經驗自己改了,居然對了。
最後就是readfile,將檔案流輸出到瀏覽器,這樣就實現了txt檔案的下載,其他型別的類似。