用PHP實(shí)現(xiàn)瀏覽器點(diǎn)擊下載TXT文檔的方法詳解
由于現(xiàn)在的瀏覽器已經(jīng)可以識(shí)別txt文檔格式,如果只給txt文檔做一個(gè)文字鏈接的話,點(diǎn)擊后只是打開(kāi)一個(gè)新窗口顯示txt文件的內(nèi)容,并不能實(shí)現(xiàn)點(diǎn)擊下載的目的。當(dāng)然這個(gè)問(wèn)題的解決辦法也可以是將txt文件改名為瀏覽器不認(rèn)識(shí)的文件(比如rar),這樣的話,由于瀏覽器不能識(shí)別rar類型的文件,只能讓用戶下載了。還有一種辦法,就是利用代碼通過(guò)header設(shè)置文檔的格式來(lái)實(shí)現(xiàn)點(diǎn)擊下載的目的。
PHP代碼如下:
===========================================================
$filename = '/path/'.$_GET['file'].'.txt'; //文件路徑
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($filename));
readfile($filename);
===========================================================
簡(jiǎn)要說(shuō)明:
第一個(gè)header函數(shù)設(shè)置Content-Type的值為application/force-download;
第二個(gè)header函數(shù)設(shè)置要下載的文件。注意這里的filename是不包含路徑的文件名,filename的值將來(lái)就是點(diǎn)擊下載后彈出對(duì)話框里面的文件名,如果帶路徑的話,彈出對(duì)話框的文件名就是未知的;
最后通過(guò)readfile函數(shù),將文件流輸出到瀏覽器,這樣就實(shí)現(xiàn)了txt文件的下載。
相關(guān)文章
同臺(tái)服務(wù)器使用緩存APC效率高于Memcached的演示代碼
之前看到有文章說(shuō)同臺(tái)服務(wù)器上APC的效率是Memcached的7倍,APC效率比Memcached高是肯定的,至于倒底快多少,我寫了個(gè)小程序測(cè)試了下。2010-02-02Php output buffering緩存及程序緩存深入解析
在php中有時(shí)為了控制程序的輸出顯示順序,提供了output buffering緩存(php自身緩存機(jī)制)。若Ob緩存開(kāi)啟,需要輸出的就先存在ob緩存里,再到程序緩存里。若沒(méi)有開(kāi)啟,則直接進(jìn)入程序緩存,程序執(zhí)行完畢,按照順序從程序緩存里輸出2013-07-07PHP模擬asp.net的StringBuilder類實(shí)現(xiàn)方法
這篇文章主要介紹了PHP模擬asp.net的StringBuilder類實(shí)現(xiàn)方法,較為簡(jiǎn)單的模擬了StringBuilder類針對(duì)文本的基本操作技巧,需要的朋友可以參考下2015-08-08利用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)
如何使用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)?下面的代碼可以幫助你實(shí)現(xiàn),非常簡(jiǎn)單,需要的朋友可以參考下2013-07-07php中g(shù)et_object_vars()方法用法實(shí)例
這篇文章主要介紹了php中g(shù)et_object_vars()方法用法,實(shí)例分析了get_object_vars()方法獲取對(duì)象中屬性的使用技巧,需要的朋友可以參考下2015-02-02PHP實(shí)現(xiàn)執(zhí)行外部程序的方法詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)執(zhí)行外部程序的方法,結(jié)合實(shí)例形式分析了php執(zhí)行外部程序的常用函數(shù)相關(guān)使用技巧與注意事項(xiàng),需要的朋友可以參考下2017-08-08DedeCMS 核心類TypeLink.class.php摘要筆記
DedeCMS 核心類TypeLink.class.php摘要筆記,學(xué)習(xí)php就是借鑒與分析,讓自己的掌握的更多。2010-04-04