當(dāng)需要下載一個PDF文件時,如果不經(jīng)處理會直接在瀏覽器里打開PDF文件,然后再需要通過另存為才能保存下載文件,下面通過PHP來實(shí)現(xiàn)直接下載PDF文件。
我們有時會遇到這樣一種情況,當(dāng)需要下載一個PDF文件時,如果不經(jīng)處理會直接在瀏覽器里打開PDF文件,然后再需要通過另存為才能保存下載文件。本文將通過PHP來實(shí)現(xiàn)直接下載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);;
- }
為了方便,我寫了一個函數(shù)forceDownload(),然后通過調(diào)用該函數(shù)即可。
新聞熱點(diǎn)
疑難解答