相關(guān)資訊
- 《戰(zhàn)國(guó)無雙4-2》怎么換服裝?戰(zhàn)國(guó)無
- 關(guān)于責(zé)任的名言警句大全
- 《戰(zhàn)國(guó)無雙4-2》PC版如何聯(lián)機(jī)? 戰(zhàn)
- 戰(zhàn)國(guó)無雙4-2技能覺醒牛逼嗎 全新
- 《戰(zhàn)國(guó)無雙4-2》手柄無效怎么解決
- 戰(zhàn)國(guó)無雙4-2如何設(shè)置語言 戰(zhàn)國(guó)無雙
- 戰(zhàn)國(guó)無雙4-2怎么樣跳過進(jìn)入開場(chǎng)動(dòng)畫
- 什么是應(yīng)屆生畢業(yè)生
- 應(yīng)屆生簡(jiǎn)歷自我評(píng)價(jià)
- 應(yīng)屆生簡(jiǎn)歷怎么寫
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
每日一囧
本文章提供給各位學(xué)習(xí)分享,是關(guān)于教你PHP如何使用header實(shí)現(xiàn)文件下載,希望對(duì)各位有所幫助。
php中要怎么樣利用header實(shí)現(xiàn)文件下載呢?
在PHP幫助文檔里面關(guān)于PHP通過header觸發(fā)下載的說明比較簡(jiǎn)單,而網(wǎng)上對(duì)這方面說明的也很少,很多文章都無法實(shí)現(xiàn)我們所需要的效果。
下面以pdf文件格式為例進(jìn)行說明:
<?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)一些無法預(yù)料的問題,如果你是一個(gè)很仔細(xì)的人的話,也可以很容易的避免這些問題。而我不是,所以我就遇到了這樣的問題,這里就以我的問題來簡(jiǎn)單說一下。
對(duì)于第一句,應(yīng)該沒啥說的,是必須的,只要改一下文檔的類型就行,例如是下載txt文件,那就改為header(’Content-type: application/txt’);。
第二句也沒啥說的,就是為你的下載文檔起一個(gè)名字,如果是txt文件的話,可以改為header(’Content-Disposition: attachment; filename=”downloaded.txt”‘);。
第三句的問題就比較多了,readfile這個(gè)函數(shù)的意思就是讀取一個(gè)文件然后輸出,這里文件的路徑需要是真實(shí)的文件路徑,如果是downloads文件夾下面的一個(gè)original.txt文件,可以這樣寫readfile(’downloads/original.txt’);,而如果提交的頁面會(huì)輸出文本等字符,那么下載到的文件會(huì)是原文件original.txt和提交的頁面輸出的文字的混合文件。我在這里就缺少了仔細(xì)的觀察,一看下面不對(duì)就立即去查代碼了,而沒發(fā)現(xiàn)上面的文本就是我需要的內(nèi)容,發(fā)現(xiàn)了這部分內(nèi)容,你可能就很快想到怎么來解決這個(gè)問題了,也就是關(guān)閉提交到的頁面的文本內(nèi)容的輸出。
到這里,問題就解決了,從而也就實(shí)現(xiàn)了文本文件鏈接被點(diǎn)擊的時(shí)候會(huì)觸發(fā)下載對(duì)話框的效果。
在PHP幫助文檔里面關(guān)于PHP通過header觸發(fā)下載的說明比較簡(jiǎn)單,而網(wǎng)上對(duì)這方面說明的也很少,很多文章都無法實(shí)現(xiàn)我們所需要的效果。
下面以pdf文件格式為例進(jìn)行說明:
<?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)一些無法預(yù)料的問題,如果你是一個(gè)很仔細(xì)的人的話,也可以很容易的避免這些問題。而我不是,所以我就遇到了這樣的問題,這里就以我的問題來簡(jiǎn)單說一下。
對(duì)于第一句,應(yīng)該沒啥說的,是必須的,只要改一下文檔的類型就行,例如是下載txt文件,那就改為header(’Content-type: application/txt’);。
第二句也沒啥說的,就是為你的下載文檔起一個(gè)名字,如果是txt文件的話,可以改為header(’Content-Disposition: attachment; filename=”downloaded.txt”‘);。
第三句的問題就比較多了,readfile這個(gè)函數(shù)的意思就是讀取一個(gè)文件然后輸出,這里文件的路徑需要是真實(shí)的文件路徑,如果是downloads文件夾下面的一個(gè)original.txt文件,可以這樣寫readfile(’downloads/original.txt’);,而如果提交的頁面會(huì)輸出文本等字符,那么下載到的文件會(huì)是原文件original.txt和提交的頁面輸出的文字的混合文件。我在這里就缺少了仔細(xì)的觀察,一看下面不對(duì)就立即去查代碼了,而沒發(fā)現(xiàn)上面的文本就是我需要的內(nèi)容,發(fā)現(xiàn)了這部分內(nèi)容,你可能就很快想到怎么來解決這個(gè)問題了,也就是關(guān)閉提交到的頁面的文本內(nèi)容的輸出。
到這里,問題就解決了,從而也就實(shí)現(xiàn)了文本文件鏈接被點(diǎn)擊的時(shí)候會(huì)觸發(fā)下載對(duì)話框的效果。
熱門評(píng)論
最新評(píng)論