當前位置:首頁文章首頁 IT學院 PHP

教你php如何利用header實現(xiàn)文件下載

作者:  來源:  發(fā)布時間:2011-5-21 9:47:20  點擊:
本文章提供給各位學習分享,是關于教你PHP如何使用header實現(xiàn)文件下載,希望對各位有所幫助。
php中要怎么樣利用header實現(xiàn)文件下載呢?
在PHP幫助文檔里面關于PHP通過header觸發(fā)下載的說明比較簡單,而網(wǎng)上對這方面說明的也很少,很多文章都無法實現(xiàn)我們所需要的效果。
下面以PDF文件格式為例進行說明: 
<?php
  // We’ll be outputting a PDF
  header(‘Content-type: application/pdf’);
  // It will be called downloaded.pdf
  header(‘Content-Disposition: attachment; filename=”downloaded.pdf”‘);
  // The PDF source is in original.pdf
  readfile(‘original.pdf’);
?>
這三句是正確的,但是在真正用的過程中很容易出現(xiàn)一些無法預料的問題,如果你是一個很仔細的人的話,也可以很容易的避免這些問題。而我不是,所以我就遇到了這樣的問題,這里就以我的問題來簡單說一下。
對于第一句,應該沒啥說的,是必須的,只要改一下文檔的類型就行,例如是下載txt文件,那就改為header(’Content-type: application/txt’);。
第二句也沒啥說的,就是為你的下載文檔起一個名字,如果是txt文件的話,可以改為header(’Content-Disposition: attachment; filename=”downloaded.txt”‘);。
第三句的問題就比較多了,readfile這個函數(shù)的意思就是讀取一個文件然后輸出,這里文件的路徑需要是真實的文件路徑,如果是downloads文件夾下面的一個original.txt文件,可以這樣寫readfile(’downloads/original.txt’);,而如果提交的頁面會輸出文本等字符,那么下載到的文件會是原文件original.txt和提交的頁面輸出的文字的混合文件。我在這里就缺少了仔細的觀察,一看下面不對就立即去查代碼了,而沒發(fā)現(xiàn)上面的文本就是我需要的內(nèi)容,發(fā)現(xiàn)了這部分內(nèi)容,你可能就很快想到怎么來解決這個問題了,也就是關閉提交到的頁面的文本內(nèi)容的輸出。
到這里,問題就解決了,從而也就實現(xiàn)了文本文件鏈接被點擊的時候會觸發(fā)下載對話框的效果。

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z