程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP通過header實現文本文件的下載

PHP通過header實現文本文件的下載

編輯:關於PHP編程

所謂實現文本文件的下載就是說當我們點擊一個文本文件的鏈接的時候不是打開這個文件,而是彈出一個下載對話框讓我們下載,這就是今天討論的主要問題。PHP幫助文檔裡面關於PHP通過header觸發下載的說明比較簡單,而網上關於此方面的文章也少的可憐,有很多文章都無法實現所需要的效果。今天我也來談一下這個方面的話題,如果你感覺比網上的某些文章有所改進,那我就很知足了。 6}g>o%P  
      如果從准確的角度來說,那PHP文檔是最准確的,因為它很簡練的列出了實現文本類文件觸發下載所需要的三條語句,以PDF為例就是: g<<x0@  
// We'll be outputting a PDF lh?cuj Qh  
header('Content-type: application/pdf'); I[xR .p  
// It will be called downloaded.pdf rWf{=Pk'  
header('Content-Disposition: attachment; filename="downloaded.pdf"'); HOAw :*Z{>  
// The PDF source is in original.pdf J4QSC\1  
readfile('original.pdf'); 0pc*r4R@  
<|<!/tyVk  
      這三句是正確的,但是在真正用的過程中很容易出現一些無法預料的問題,如果你是一個很仔細的人的話,也可以很容易的避免這些問題。而我不是,所以我就遇到了這樣的問題,這裡就以我的問題來簡單說一下。  1xraa7  
      對於第一句,應該沒啥說的,是必須的,只要改一下文檔的類型就行,例如是下載txt文件,那就改為header(’Content-type: application/txt’);,第二句也沒啥說的,就是為你的下載文檔起一個名字,如果是txt文件的話,可以改為header(’Content-Disposition: attachment; filename=”downloaded.txt”‘);,第三句的問題就比較多了,readfile這個函數的意思就是讀取一個文件然後輸出,這裡文件的路徑需要是真實的文件路徑,如果是downloads文件夾下面的一個original.txt文件,可以這樣寫readfile(’downloads/original.txt’);,而如果提交的頁面會輸出文本等字符,那麼下載到的文件會是原文件original.txt和提交的頁面輸出的文字的混合文件。我在這裡就缺少了仔細的觀察,一看下面不對就立即去查代碼了,而沒發現上面的文本就是我需要的內容,發現了這部分內容,你可能就很快想到怎麼來解決這個問題了,也就是關閉提交到的頁面的文本內容的輸出。 i-z7 i;I  
.FRO|}}  
Wr#r?DhI  
到這裡,我們的問題就解決了,從而也就實現了文本文件鏈接被點擊的時候會觸發下載對話框的效果。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved