header中Content-Disposition的作用与使用方法
Content-disposition 是 MIME 協(xié)議的擴(kuò)展,MIME 協(xié)議指示 MIME 用戶(hù)代理如何顯示附加的文件。Content-disposition其實(shí)可以控制用戶(hù)請(qǐng)求所得的內(nèi)容存為一個(gè)文件的時(shí)候提供一個(gè)默認(rèn)的文件名,文件直接在瀏覽器上顯示或者在訪問(wèn)時(shí)彈出文件下載對(duì)話(huà)框。
格式說(shuō)明: content-disposition = “Content-Disposition” “:” disposition-type *( “;” disposition-parm )
字段說(shuō)明: Content-Disposition為屬性名disposition-type是以什么方式下載,如attachment為以附件方式下載disposition-parm為默認(rèn)保存時(shí)的文件名服務(wù)端向客戶(hù)端游覽器發(fā)送文件時(shí),如果是瀏覽器支持的文件類(lèi)型,一般會(huì)默認(rèn)使用瀏覽器打開(kāi),比如txt、jpg等,會(huì)直接在瀏覽器中顯示,如果需要提示用戶(hù)保存,就要利用Content-Disposition進(jìn)行一下處理,關(guān)鍵在于一定要加上attachment:復(fù)制代碼 代碼如下:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt")備注:這樣瀏覽器會(huì)提示保存還是打開(kāi),即使選擇打開(kāi),也會(huì)使用相關(guān)聯(lián)的程序比如記事本打開(kāi),而不是IE直接打開(kāi)了。Content-Disposition就是當(dāng)用戶(hù)想把請(qǐng)求所得的內(nèi)容存為一個(gè)文件的時(shí)候提供一個(gè)默認(rèn)的文件名。
那么由上可知具體的例子: Content-Disposition: attachment; filename=“filename.xls"當(dāng)然filename參數(shù)可以包含路徑信息,但User-Agnet會(huì)忽略掉這些信息,只會(huì)把路徑信息的最后一部分做為文件名。
當(dāng)你在響應(yīng)類(lèi)型為application/octet- stream情況下使用了這個(gè)頭信息的話(huà),那就意味著你不想直接顯示內(nèi)容,而是彈出一個(gè)"文件下載"的對(duì)話(huà)框,接下來(lái)就是由你來(lái)決定"打開(kāi)"還是"保存” 了。
注意事項(xiàng):
當(dāng)代碼里面使用Content-Disposition來(lái)確保瀏覽器彈出下載對(duì)話(huà)框的時(shí)候。 response.addHeader(“Content-Disposition”,“attachment”);一定要確保沒(méi)有做過(guò)關(guān)于禁止瀏覽器緩存的操作。
代碼如下:
response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "No-cache"); response.setDateHeader("Expires", 0);不然會(huì)發(fā)現(xiàn)下載功能在opera和firefox里面好好的沒(méi)問(wèn)題,在IE下面就是不行。
總結(jié)
以上是生活随笔為你收集整理的header中Content-Disposition的作用与使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java处理IOS无法播放视频流(Acc
- 下一篇: vmstat 命令的使用