header中Content-Disposition的作用與使用方法
更新時間:2012年06月13日 16:11:46 作者:
本文章詳細的介紹了關于php header中Content-disposition用法詳細,有需要了解header用法的朋友可參考一下
Content-disposition 是 MIME 協(xié)議的擴展,MIME 協(xié)議指示 MIME 用戶代理如何顯示附加的文件。Content-disposition其實可以控制用戶請求所得的內(nèi)容存為一個文件的時候提供一個默認的文件名,文件直接在瀏覽器上顯示或者在訪問時彈出文件下載對話框。
格式說明:
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
字段說明:
Content-Disposition為屬性名
disposition-type是以什么方式下載,如attachment為以附件方式下載
disposition-parm為默認保存時的文件名
服務端向客戶端游覽器發(fā)送文件時,如果是瀏覽器支持的文件類型,一般會默認使用瀏覽器打開,比如txt、jpg等,會直接在瀏覽器中顯示,如果需要提示用戶保存,就要利用Content-Disposition進行一下處理,關鍵在于一定要加上attachment:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
備注:這樣瀏覽器會提示保存還是打開,即使選擇打開,也會使用相關聯(lián)的程序比如記事本打開,而不是IE直接打開了。
Content-Disposition就是當用戶想把請求所得的內(nèi)容存為一個文件的時候提供一個默認的文件名。具體的定義如下:
content-disposition = "Content-Disposition" ":"
disposition-type *( ";" disposition-parm )
disposition-type = "attachment" | disp-extension-token
disposition-parm = filename-parm | disp-extension-parm
filename-parm = "filename" "=" quoted-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string )
那么由上可知具體的例子:
Content-Disposition: attachment; filename="filename.xls"
當然filename參數(shù)可以包含路徑信息,但User-Agnet會忽略掉這些信息,只會把路徑信息的最后一部分做為文件名。當你在響應類型為application/octet- stream情況下使用了這個頭信息的話,那就意味著你不想直接顯示內(nèi)容,而是彈出一個"文件下載"的對話框,接下來就是由你來決定"打開"還是"保存" 了。
注意事項:
1.當代碼里面使用Content-Disposition來確保瀏覽器彈出下載對話框的時候。 response.addHeader("Content-Disposition","attachment");一定要確保沒有做過關于禁止瀏覽器緩存的操作。如下:
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
不然會發(fā)現(xiàn)下載功能在opera和firefox里面好好的沒問題,在IE下面就是不行
格式說明:
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
字段說明:
Content-Disposition為屬性名
disposition-type是以什么方式下載,如attachment為以附件方式下載
disposition-parm為默認保存時的文件名
服務端向客戶端游覽器發(fā)送文件時,如果是瀏覽器支持的文件類型,一般會默認使用瀏覽器打開,比如txt、jpg等,會直接在瀏覽器中顯示,如果需要提示用戶保存,就要利用Content-Disposition進行一下處理,關鍵在于一定要加上attachment:
復制代碼 代碼如下:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
備注:這樣瀏覽器會提示保存還是打開,即使選擇打開,也會使用相關聯(lián)的程序比如記事本打開,而不是IE直接打開了。
Content-Disposition就是當用戶想把請求所得的內(nèi)容存為一個文件的時候提供一個默認的文件名。具體的定義如下:
復制代碼 代碼如下:
content-disposition = "Content-Disposition" ":"
disposition-type *( ";" disposition-parm )
disposition-type = "attachment" | disp-extension-token
disposition-parm = filename-parm | disp-extension-parm
filename-parm = "filename" "=" quoted-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | quoted-string )
那么由上可知具體的例子:
Content-Disposition: attachment; filename="filename.xls"
當然filename參數(shù)可以包含路徑信息,但User-Agnet會忽略掉這些信息,只會把路徑信息的最后一部分做為文件名。當你在響應類型為application/octet- stream情況下使用了這個頭信息的話,那就意味著你不想直接顯示內(nèi)容,而是彈出一個"文件下載"的對話框,接下來就是由你來決定"打開"還是"保存" 了。
注意事項:
1.當代碼里面使用Content-Disposition來確保瀏覽器彈出下載對話框的時候。 response.addHeader("Content-Disposition","attachment");一定要確保沒有做過關于禁止瀏覽器緩存的操作。如下:
復制代碼 代碼如下:
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
不然會發(fā)現(xiàn)下載功能在opera和firefox里面好好的沒問題,在IE下面就是不行
您可能感興趣的文章:
相關文章
PHP curl 或 file_get_contents 獲取需要授權頁面的方法
本篇文章主要介紹了PHP curl 或 file_get_contents獲取需要授權頁面的方法,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05
php數(shù)組函數(shù)序列之each() - 獲取數(shù)組當前內(nèi)部指針所指向元素的鍵名和鍵值,并將指針移到下一位
each() 函數(shù)生成一個由數(shù)組當前內(nèi)部指針所指向的元素的鍵名和鍵值組成的數(shù)組,并把內(nèi)部指針向前移動。返回的數(shù)組中包括的四個元素:鍵名為 0,1,key 和 value。單元 0 和 key 包含有數(shù)組單元的鍵名,1 和 value 包含有數(shù)據(jù)2011-10-10
PHP用mysql_insert_id()函數(shù)獲得剛插入數(shù)據(jù)或當前發(fā)布文章的ID
向mysql 插入數(shù)據(jù)時,很多時候我們想知道剛剛插入數(shù)據(jù)的id,這對我們很有用。下面這篇文章就詳細給大家介紹了利用mysql_insert_id()函數(shù)獲得剛插入數(shù)據(jù)或當前發(fā)布文章的ID,有需要的朋友們可以參考借鑒,感興趣的朋友們下面來一起看看吧。2016-11-11
基于命令行執(zhí)行帶參數(shù)的php腳本并取得參數(shù)的方法
這篇文章主要介紹了基于命令行執(zhí)行帶參數(shù)的php腳本并取得參數(shù)的方法,分析了命令行運行PHP代碼的原理、用法與相關注意事項,需要的朋友可以參考下2016-01-01
PHP頁面靜態(tài)化——純靜態(tài)與偽靜態(tài)用法詳解
這篇文章主要介紹了PHP頁面靜態(tài)化——純靜態(tài)與偽靜態(tài)用法,結(jié)合實例形式分析了PHP頁面靜態(tài)化——純靜態(tài)與偽靜態(tài)相關原理、實現(xiàn)方法與相關操作注意事項,需要的朋友可以參考下2020-06-06

