php只显示指定文件类型_php强制下载指定类型的文件
當(dāng)需要將文件直接下載時(shí),可以使用如下的函數(shù)來(lái)實(shí)現(xiàn)。
代碼:
復(fù)制代碼 代碼示例:
function downloadFile($file){
$file_name = $file;
$mime = 'application/force-download';
header('Pragma: public');?????? // required
header('Expires: 0');??? // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file_name);??? // push it out
exit();
}
php將文件下載下來(lái)而不是超鏈接下載,這樣可以減少盜鏈的情況!
將文件給瀏覽器讓瀏覽器下載。
下面以txt類型為例,介紹下php實(shí)現(xiàn)強(qiáng)制下載指定類型文件的方法。
由于現(xiàn)在的瀏覽器已經(jīng)可以識(shí)別txt文檔格式,如果只給txt文檔做一個(gè)文字鏈接的話,點(diǎn)擊后只是打開(kāi)一個(gè)新窗口顯示txt文件的內(nèi)容,并不能實(shí)現(xiàn)點(diǎn)擊下載的目的。
此問(wèn)題的解決辦法也可以是將txt文件改名為瀏覽器不認(rèn)識(shí)的文件(比如rar),這樣的話,由于瀏覽器不能識(shí)別rar類型的文件,只能讓用戶下載了。
另外一種辦法,就是利用代碼通過(guò)header設(shè)置文檔的格式來(lái)實(shí)現(xiàn)點(diǎn)擊下載的目的。
例子:
復(fù)制代碼 代碼示例:
$filename = '/path/'.$_GET['file'].'.txt'; //文件路徑
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($filename));
readfile($filename);
說(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文件的下載。
總結(jié)
以上是生活随笔為你收集整理的php只显示指定文件类型_php强制下载指定类型的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java 令牌解析_Java编程guav
- 下一篇: 动态规划算法php,php算法学习之动态