當需要下載一個PDF文件時,如果不經處理會直接在浏覽器裡打開PDF文件,然後再需要通過另存為才能保存下載文件,下面通過PHP來實現直接下載PDF文件
我們有時會遇到這樣一種情況,當需要下載一個PDF文件時,如果不經處理會直接在浏覽器裡打開PDF文件,然後再需要通過另存為才能保存下載文件。本文將通過PHP來實現直接下載PDF文件。 實現原理:我們僅僅只需要修改頁面HTTP頭,把Content-Type設置為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);; } 為了方便,我寫了一個函數forceDownload(),然後通過調用該函數即可。