使用PHP強(qiáng)制下載PDF文件示例
實(shí)現(xiàn)原理:我們僅僅只需要修改頁面HTTP頭,把Content-Type設(shè)置為force-download,問題即可解決。
請看代碼:
forceDownload("pdfdemo.pdf");
function forceDownload($filename) {
if (false == file_exists($filename)) {
return false;
}
// http headers
header('Content-Type: application-x/force-download');
header('Content-Disposition: attachment; filename="' . basename($filename) .'"');
header('Content-length: ' . filesize($filename));
// for IE6
if (false === strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) {
header('Cache-Control: no-cache, must-revalidate');
}
header('Pragma: no-cache');
// read file content and output
return readfile($filename);;
}
為了方便,我寫了一個(gè)函數(shù)forceDownload(),然后通過調(diào)用該函數(shù)即可。
相關(guān)文章
深入解讀php中關(guān)于抽象(abstract)類和抽象方法的問題分析
這篇文章主要介紹了php中關(guān)于抽象(abstract)類和抽象方法的問題分析,有需要的朋友可以參考一下2014-01-01php獲取四位字母和數(shù)字的隨機(jī)數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了php做程序開發(fā)的過程中,我們很多時(shí)候會(huì)在登錄界面或者評(píng)論界面做一些四位數(shù)的驗(yàn)證碼,需要的朋友可以參考下2015-01-01學(xué)習(xí)PHP的數(shù)組總結(jié)【經(jīng)驗(yàn)】
這篇文章主要介紹了學(xué)習(xí)PHP的數(shù)組總結(jié)【經(jīng)驗(yàn)】,需要的朋友可以參考下2016-05-05MySQL時(shí)間字段究竟使用INT還是DateTime的說明
今天解析DEDECMS時(shí)發(fā)現(xiàn)deder的MYSQL時(shí)間字段,都是用INT類型,隨后又在網(wǎng)上找到這篇文章,看來如果時(shí)間字段有參與運(yùn)算,用int更好,一來檢索時(shí)不用在字段上轉(zhuǎn)換運(yùn)算,直接用于時(shí)間比較!二來如下所述效率也更高2012-02-02php對(duì)大文件進(jìn)行讀取操作的實(shí)現(xiàn)代碼
在php中,對(duì)于文件的讀取時(shí),最快捷的方式莫過于使用一些諸如file、file_get_contents之類的函數(shù),簡簡單單的幾行代碼就能很漂亮的完成我們所需要的功能。但當(dāng)所操作的文件是一個(gè)比較大的文件時(shí),這些函數(shù)可能就顯的力不從心, 下面將從一個(gè)需求入手來說明對(duì)于讀取大文件時(shí),常用的操作方法2013-01-01PHP類相關(guān)知識(shí)點(diǎn)實(shí)例總結(jié)
這篇文章主要介紹了PHP類相關(guān)知識(shí)點(diǎn),結(jié)合實(shí)例形式總結(jié)分析了php類相關(guān)的最終類、最終方法、抽象類、抽象方法、接口、重載、魔術(shù)方法等相關(guān)概念與操作技巧,需要的朋友可以參考下2016-09-09PHP寫入WRITE編碼為UTF8的文件的實(shí)現(xiàn)代碼
可以把uft-8格式的文件,寫到文本中的實(shí)現(xiàn)代碼2008-07-07PHP實(shí)現(xiàn)給定一列字符,生成指定長度的所有可能組合示例
這篇文章主要介紹了PHP實(shí)現(xiàn)給定一列字符,生成指定長度的所有可能組合,涉及PHP數(shù)組遍歷、數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-06-06