亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

Content-Disposition使用方法和注意事項

2024-05-05 00:00:01
字體:
來源:轉載
供稿:網友

最近不少Web技術圈內的朋友在討論協議方面的事情,有的說web開發者應該熟悉web相關的協議,有的則說不用很了解。個人認為這要分層次來看待這個問 題,對于一個新手或者剛入門的web開發人員而言,研究協議方面的東西可能會使得web開發失去趣味性、抹煞學習積極性,這類人應該更多的了解基本的 Web技術使用。而對于在該行業工作多年的老鳥來說,協議相關的內容、標準相關內容應該盡量多些的了解,因為只有這樣才能使得經手的web系統更加優秀 (安全、漂亮、快速、兼容性好、體驗好……)。

本文我們來說一下MIME 協議的一個擴展Content-disposition。

我們在開發web系統時有時會有以下需求:

  • 希望某類或者某已知MIME 類型的文件(比如:*.gif;*.txt;*.htm)能夠在訪問時彈出“文件下載”對話框
  • 希望以原始文件名(上傳時的文件名,例如:山東省政府1024號文件.doc)提供下載,但服務器上保存的地址卻是其他文件名(如:12519810948091234_asdf.doc)
  • 希望某文件直接在瀏覽器上顯示而不是彈出文件下載對話框
  • ……………………

要解決上述需求就可以使用Content-disposition來解決。第一個需求的解決辦法是

Response.AddHeader "content-disposition","attachment; filename=fname.ext"

將上述需求進行歸我給出如下例子代碼:

public static void ToDownload(string serverfilpath,string filename){FileStream fileStream = new FileStream(serverfilpath, FileMode.Open);long fileSize = fileStream.Length;HttpContext.Current.Response.ContentType = "application/octet-stream";HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=/"" + UTF_FileName(filename) + "/";");////attachment --- 作為附件下載////inline --- 在線打開HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());byte[] fileBuffer = new byte[fileSize];fileStream.Read(fileBuffer, 0, (int)fileSize);HttpContext.Current.Response.BinaryWrite(fileBuffer);fileStream.Close();HttpContext.Current.Response.End();}public static void ToOpen(string serverfilpath, string filename){FileStream fileStream = new FileStream(serverfilpath, FileMode.Open);long fileSize = fileStream.Length;HttpContext.Current.Response.ContentType = "application/octet-stream";HttpContext.Current.Response.AddHeader("Content-Disposition", "inline; filename=/"" + UTF_FileName(filename) + "/";");HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());byte[] fileBuffer = new byte[fileSize];fileStream.Read(fileBuffer, 0, (int)fileSize);HttpContext.Current.Response.BinaryWrite(fileBuffer);fileStream.Close();HttpContext.Current.Response.End();}private static string UTF_FileName(string filename){return HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);}

簡單的對上述代碼做一下解析,ToDownload方法為將一個服務器上的文件(serverfilpath為服務器上的物理地址),以某文件名 (filename)在瀏覽器上彈出“文件下載”對話框,而ToOpen是將服務器上的某文件以某文件名在瀏覽器中顯示/打開的。注意其中我使用了 UTF_FileName方法,該方法很簡單,主要為了解決包含非英文/數字名稱的問題,比如說文件名為“衣明志.doc”,使用該方法客戶端就不會出現 亂碼了。

需要注意以下幾個問題:

1、Content-disposition是MIME協議的擴展,由于多方面的安全性考慮沒有被標準化,所以可能某些瀏覽器不支持,比如說IE4.01
2、我們可以使用程序來使用它,也可以在web服務器(比如IIS)上使用它,只需要在http header上做相應的設置即可

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久免费少妇高潮久久精品99| 色综合伊人色综合网站| 久久九九国产精品怡红院| 久久免费视频在线观看| 久久久噜噜噜久久| 8050国产精品久久久久久| 国产成人精品久久亚洲高清不卡| 色中色综合影院手机版在线观看| 国产精品爽黄69天堂a| 亚洲欧洲国产伦综合| 亚洲精品国产欧美| 在线视频欧美性高潮| 亚洲的天堂在线中文字幕| 亚洲国产成人精品女人久久久| 国产精品专区h在线观看| 国产精品香蕉av| 久久久精品在线观看| 欧美视频第一页| 成人www视频在线观看| 国产日韩欧美在线看| 97色伦亚洲国产| 国产欧美日韩免费看aⅴ视频| 亚洲国产精品高清久久久| 亚洲日本中文字幕| 丰满岳妇乱一区二区三区| 欧美激情综合色| 一道本无吗dⅴd在线播放一区| 精品国产一区二区三区久久久| 日韩av色综合| 欧美午夜美女看片| 国产成+人+综合+亚洲欧洲| 国产成人精品免高潮在线观看| 中文字幕精品久久久久| 日韩亚洲一区二区| 97精品伊人久久久大香线蕉| 55夜色66夜色国产精品视频| 91精品视频在线看| 欧美午夜丰满在线18影院| 日本精品久久久久影院| 国产一区二区三区在线免费观看| 色爱av美腿丝袜综合粉嫩av| 久久综合五月天| 中文字幕日韩欧美在线| 日韩大片在线观看视频| 精品国产成人av| 日本高清不卡的在线| 欧美性极品xxxx做受| 国内精品久久久久久中文字幕| 97热精品视频官网| 欧美麻豆久久久久久中文| 欧美日韩亚洲精品内裤| 国产成人涩涩涩视频在线观看| 亚洲精品午夜精品| 欧美在线观看视频| 日韩av在线网址| 亚洲天堂男人的天堂| 日韩中文字幕视频在线观看| 国产一区二区激情| 欧美日韩一区二区免费在线观看| 亚洲欧美国产日韩中文字幕| 亚洲精品日韩丝袜精品| 神马国产精品影院av| 中文字幕亚洲情99在线| 91精品国产免费久久久久久| 国内精品久久久久久影视8| 成人免费看黄网站| 亚洲图片欧洲图片av| 久久全球大尺度高清视频| 午夜精品免费视频| 欧美激情乱人伦| 狠狠色狠狠色综合日日五| 亚洲精品一区二区三区婷婷月| 中文字幕日韩电影| 中文字幕一区二区精品| 中文字幕视频一区二区在线有码| 欧美一级视频免费在线观看| 最近日韩中文字幕中文| 欧美洲成人男女午夜视频| 亚洲欧美另类中文字幕| 成人黄色av播放免费| 美女久久久久久久久久久| 欧美亚洲激情在线| 九九热视频这里只有精品| 超碰日本道色综合久久综合| 欧美一级片在线播放| 国产精品wwww| 国产精品国内视频| 91网站免费观看| 亚洲精品美女在线| 国内精品久久久久久影视8| 国产69精品久久久久9| 亚洲国产精品久久久| 萌白酱国产一区二区| 欧美激情区在线播放| 狠狠躁夜夜躁人人爽天天天天97| 中国china体内裑精亚洲片| 欧美又大又粗又长| 亚洲精品视频在线观看视频| 亚洲美女激情视频| 色琪琪综合男人的天堂aⅴ视频| 欧美日韩午夜剧场| 欧美日韩国产成人在线观看| 国产福利精品在线| 日韩欧美一区二区三区| 亚洲一区二区三区成人在线视频精品| 亚洲国产精品va在线| 国产精品久久久久999| 国产亚洲一区二区精品| 国产一区二区三区在线观看网站| 中文字幕亚洲无线码在线一区| 久久国产精品久久精品| 国产精品成熟老女人| 国产精品96久久久久久又黄又硬| 欧美成人在线网站| 久久久久久久一区二区三区| 国产精品亚洲网站| 亚洲中国色老太| 午夜欧美不卡精品aaaaa| 精品国产福利视频| 中文字幕成人在线| 精品久久久久久国产| 国产精品一区二区久久久| 国产91色在线|| 日韩精品中文字幕在线播放| 亚洲男人天堂视频| 亚洲国产另类 国产精品国产免费| 久久男人av资源网站| 亚洲在线观看视频| 日韩精品在线视频| 欧美日韩成人在线播放| 91禁国产网站| 亚洲欧美国产一区二区三区| 精品久久香蕉国产线看观看gif| 91精品国产综合久久香蕉922| 久久香蕉国产线看观看av| 欧美交受高潮1| 中文字幕日韩视频| 疯狂做受xxxx欧美肥白少妇| 精品自在线视频| 日韩在线观看免费高清完整版| 久久av.com| 91探花福利精品国产自产在线| 国内精品小视频在线观看| 在线播放国产一区中文字幕剧情欧美| 欧美日韩国产中文精品字幕自在自线| 亚洲视频在线免费观看| 日韩中文字幕第一页| 97久久国产精品| 日韩免费观看网站| 日韩av在线精品| 欧美日韩国产在线看| 美女福利视频一区| 日本一欧美一欧美一亚洲视频| 国产精品xxxxx| 在线看日韩av| 夜夜嗨av一区二区三区免费区| 精品久久久久久久久久国产| 欧洲亚洲妇女av| 亚洲精品自拍第一页| 国产精品激情av电影在线观看| 亚洲精品视频久久| 亚洲国产精品久久久久秋霞蜜臀| 亚洲精品美女久久久久| 日韩中文字幕不卡视频|