帝國CMS下載txt文件瀏覽器帶下載進(jìn)度顯示
帝國默認(rèn)TXT格式的文件是不可以下載,不修改源文件他會(huì)直接打開
方法TXT彈出下載:
測試版本:帝國CMS7.0
功能位置:后臺(tái)->其他管理->下載模型管理->管理地址前綴相關(guān)函數(shù):
e/class/DownSysFun.php DoTypeForDownurl() , QDownLoadFile() , DownSoft()
功能解釋:
HEADER:使用header轉(zhuǎn)向,通常設(shè)為這個(gè)。
META:直接轉(zhuǎn)自,如果是FTP地址推薦選擇這個(gè)。
READ:使用PHP程序讀取,防盜鏈較強(qiáng),但較占資源,服務(wù)器本地小文件可選擇。
帝國CMS彈出下載txt,xls等說明
1.看下面粘貼的帝國原函數(shù)DoTypeForDownurl() Header 與 Meta 兩種方式都使用的真實(shí)地址,在這兩種方式下瀏覽器不能讀取的文件格式,例如RAR,ZIP等將直接直接彈出一個(gè)真實(shí)地址下載,txt等瀏覽器可讀的文件格式則直接在線瀏覽;2.默認(rèn)不選擇前綴的情況下,使用是Header3.READ 這種方式下是利用PHP讀取文件,并傳遞給瀏覽器,無論 RAR 還是TXT都會(huì)彈出下載,而不是瀏覽器直接讀取,彈出的地址也是加密的地址類似:xxx.com/enews=DownSoft& classid=39&id=11&pathid=0&pass=7b9516932a88d44b4e4610e209f6288d&p=22:::J2qCrBGqmrxK4.READ的加密地址判斷是否有下載權(quán)限,也就是地址是否正確是由e/class/DownSysFun.php中DownSoft()函數(shù)來判 斷的,經(jīng)測試如果不更改后臺(tái)->系統(tǒng)設(shè)置->模型設(shè)置->下載驗(yàn)證碼 的情況下流傳出去是可以持續(xù)被下載的(沒有用戶組,積分等判斷限制 如果要避免那么e/class/DownSysFun.php 第一行 $DownSys_CheckIp=0; 中的0改為1),帝國CMS也是通過這個(gè)方式來防盜鏈5.如果我不想使用下載地址前綴,而讓TXT等格式可以彈出下載,那么你可以在e/class/DownSysFun.php中搜索DoTypeForDownurl($downurl,$downurlr['downtype']);上一行加入如下代碼:
//不使用下載地址前綴 讓txt等瀏覽器可讀類型文件彈出下載 $type2r=array(".xls",".txt",); if(in_array(GetFiletype($downurl),$type2r)) { $downurlr['downtype']=2; }
此方法可以下載TXT格式文件,但下載沒有進(jìn)度條顯示加入以下代碼可實(shí)現(xiàn)TXT進(jìn)度條下載://下載$filesize = filesize($file);Header('Pragma: public');Header('Last-Modified:'.gmdate('D, d M Y H:i:s') . ' GMT');Header('Cache-Control: no-store, no-cache, must-revalidate');Header('Cache-Control: pre-check=0, post-check=0, max-age=0');Header('Content-Transfer-Encoding: binary');Header('Content-Encoding: none');Header("Content-type: application/octet-stream");Header("Content-Disposition: attachment; filename=".$filename);Header('Content-length: '.$filesize);echo ReadFile($file);