我們有時會遇到這樣一種情況,當需要下載一個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(),然後通過調用該函數即可。