国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

header中Content-Disposition的作用

2019-11-08 18:34:32
字體:
來源:轉載
供稿:網友

 

今天查看Struts2的文件上傳部分 發現有個例子開頭打印的信息中有Content-Disposition,一時好奇,所以了解了一下。順便學習一下文件上傳所需要的注意事項。

      Content-disposition 是 MIME 協議的擴展,MIME 協議指示 MIME 用戶代理如何顯示附加的文件。當 Internet Explorer 接收到頭時,它會激活文件下載對話框,它的文件名框自動填充了頭中指定的文件名。(請注意,這是設計導致的;無法使用此功能將文檔保存到用戶的計算機上,而不向用戶詢問保存位置。)   

        服務端向客戶端游覽器發送文件時,如果是瀏覽器支持的文件類型,一般會默認使用瀏覽器打開,比如txt、jpg等,會直接在瀏覽器中顯示,如果需要提示用戶保存,就要利用Content-Disposition進行一下處理,關鍵在于一定要加上attachment:

Response.AppendHeader(“Content-Disposition”,”attachment;filename=FileName.txt”);

備注:這樣瀏覽器會提示保存還是打開,即使選擇打開,也會使用相關聯的程序比如記事本打開,而不是IE直接打開了。

Content-Disposition就是當用戶想把請求所得的內容存為一個文件的時候提供一個默認的文件名。具體的定義如下:

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參數可以包含路徑信息,但User-Agnet會忽略掉這些信息,只會把路徑信息的最后一部分做為文件名。當你在響應類型為application/octet- stream情況下使用了這個頭信息的話,那就意味著你不想直接顯示內容,而是彈出一個”文件下載”的對話框,接下來就是由你來決定“打開”還是“保存” 了。

注意事項:

1.當代碼里面使用Content-Disposition來確保瀏覽器彈出下載對話框的時候。 response.addHeader(“Content-Disposition”,”attachment”);一定要確保沒有做過關于禁止瀏覽器緩存的操作。如下:

response.setHeader(“PRagma”, “No-cache”); response.setHeader(“Cache-Control”, “No-cache”); response.setDateHeader(“Expires”, 0);

不然會發現下載功能在OperaFirefox里面好好的沒問題,在IE下面就是不行,就是找不到文件。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中方县| 吉首市| 福州市| 新源县| 大宁县| 长乐市| 晋江市| 衡山县| 寻乌县| 永德县| 沽源县| 宁夏| 洛浦县| 木兰县| 泊头市| 灵丘县| 福海县| 扬中市| 榆社县| 临沧市| 个旧市| 库车县| 辽源市| 江华| 萨嘎县| 香格里拉县| 剑川县| 黄山市| 邛崃市| 廉江市| 思南县| 郯城县| 抚州市| 花莲市| 濮阳市| 吴江市| 沅江市| 织金县| 黄大仙区| 抚顺市| 昌江|