最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP通過(guò)header實(shí)現(xiàn)文本文件下載的代碼

 更新時(shí)間:2010年08月08日 13:26:57   作者:  
所謂實(shí)現(xiàn)文本文件的下載就是說(shuō)當(dāng)我們點(diǎn)擊一個(gè)文本文件的鏈接的時(shí)候不是打開(kāi)這個(gè)文件,而是彈出一個(gè)下載對(duì)話框讓我們下載
這就是今天討論的主要問(wèn)題。PHP幫助文檔里面關(guān)于PHP通過(guò)header觸發(fā)下載的說(shuō)明比較簡(jiǎn)單,而網(wǎng)上關(guān)于此方面的文章也少的可憐,有很多文章都無(wú)法實(shí)現(xiàn)所需要的效果。今天我也來(lái)談一下這個(gè)方面的話題,如果你感覺(jué)比網(wǎng)上的某些文章有所改進(jìn),那我就很知足了。

如果從準(zhǔn)確的角度來(lái)說(shuō),那PHP文檔是最準(zhǔn)確的,因?yàn)樗芎?jiǎn)練的列出了實(shí)現(xiàn)文本類文件觸發(fā)下載所需要的三條語(yǔ)句,以PDF為例就是:
復(fù)制代碼 代碼如下:

// 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');

這三句是正確的,但是在真正用的過(guò)程中很容易出現(xiàn)一些無(wú)法預(yù)料的問(wèn)題,如果你是一個(gè)很仔細(xì)的人的話,也可以很容易的避免這些問(wèn)題。而我不是,所以我就遇到了這樣的問(wèn)題,這里就以我的問(wèn)題來(lái)簡(jiǎn)單說(shuō)一下。

對(duì)于第一句,應(yīng)該沒(méi)啥說(shuō)的,是必須的,只要改一下文檔的類型就行,例如是下載txt文件,那就改為header(‘Content-type: application/txt');,第二句也沒(méi)啥說(shuō)的,就是為你的下載文檔起一個(gè)名字,如果是txt文件的話,可以改為header(‘Content-Disposition: attachment; filename=”downloaded.txt”‘);,第三句的問(wèn)題就比較多了,readfile這個(gè)函數(shù)的意思就是讀取一個(gè)文件然后輸出,這里文件的路徑需要是真實(shí)的文件路徑,如果是downloads文件夾下面的一個(gè)original.txt文件,可以這樣寫readfile(‘downloads/original.txt');,而如果提交的頁(yè)面會(huì)輸出文本等字符,那么下載到的文件會(huì)是原文件original.txt和提交的頁(yè)面輸出的文字的混合文件。我在這里就缺少了仔細(xì)的觀察,一看下面不對(duì)就立即去查代碼了,而沒(méi)發(fā)現(xiàn)上面的文本就是我需要的內(nèi)容,發(fā)現(xiàn)了這部分內(nèi)容,你可能就很快想到怎么來(lái)解決這個(gè)問(wèn)題了,也就是關(guān)閉提交到的頁(yè)面的文本內(nèi)容的輸出。

到這里,我們的問(wèn)題就解決了,從而也就實(shí)現(xiàn)了文本文件鏈接被點(diǎn)擊的時(shí)候會(huì)觸發(fā)下載對(duì)話框的效果。

相關(guān)文章

最新評(píng)論

西安市| 台北县| 丹巴县| 江永县| 红河县| 松桃| 连云港市| 呼玛县| 海阳市| 简阳市| 乌兰县| 潜江市| 资兴市| 博罗县| 南宁市| 绵阳市| 金沙县| 泽普县| 永宁县| 洛阳市| 宿州市| 东宁县| 湖州市| 和龙市| 阜阳市| 库伦旗| 嘉义县| 个旧市| 汝州市| 布尔津县| 西峡县| 大港区| 施甸县| 河源市| 井冈山市| 达拉特旗| 英超| 沾益县| 永新县| 汽车| 神农架林区|