成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

ASP.NET從注冊表讀取文件的ContentType

2010-08-28 10:50:35來源:西部e網作者:

    有的時候為了不讓客戶端知道文件的下載地址我們不直接公開文件的url,而是采用Response.WriteFile的形式輸出文件,當我們需要直接在客戶端的瀏覽器上打開這個文件的時候問題來了,如果我們不設定Response.ContentType的話,非文本文件在瀏覽器上直接將會直接輸出得到的結果只能是亂碼,但是ContentType非常多,如果采用switch-case的方法代碼比較臃腫,而且還有可能遺留擴展名,我們打開注冊表可以看到每一種文件在注冊表中都能找到ContentType(可以按照value查找Content Type關鍵詞看到),既然這樣就能嘗試從注冊表讀取ContentType了。下面是一個例子代碼:

using Microsoft.Win32;

string filename=File1.Value;//這里使用了一個HtmlInputFile
System.IO.FileInfo fi
=new System.IO.FileInfo(filename);
string fileextname=fi.Extension;
string DEFAULT_CONTENT_TYPE = "application/unknown";
RegistryKey regkey,fileextkey;
string filecontenttype;
try 
{                
      regkey
=Registry.ClassesRoot;                
      fileextkey
=regkey.OpenSubKey(fileextname);                
      filecontenttype
=fileextkey.GetValue("Content Type",DEFAULT_CONTENT_TYPE).ToString();
}
catch
{
      filecontenttype
=DEFAULT_CONTENT_TYPE;
}        
Response.Clear();
Response.AddHeader(
"Content-Disposition""attachment;filename=" + Server.UrlEncode(filename)); 
Response.ContentType
=filecontenttype;
Response.WriteFile(filename); 

西部e網(weste.net)編輯:經過測試,這段程序還真是不錯~~~節省了switch-case好大一段代碼,也解決了比如圖片、文本等不提示下載而直接顯示的問題。

關鍵詞:ASP.NET
主站蜘蛛池模板: 铜陵市| 东丽区| 林口县| 定边县| 罗甸县| 雅安市| 法库县| 乌兰县| 平凉市| 尼玛县| 横峰县| 包头市| 田林县| 双柏县| 宜阳县| 鄂伦春自治旗| 固始县| 汨罗市| 新乐市| 嘉荫县| 龙州县| 蚌埠市| 巴南区| 肥东县| 封开县| 乌兰县| 辽阳市| 肃北| 大庆市| 连云港市| 怀宁县| 绍兴市| 静安区| 安平县| 民乐县| 芜湖市| 南雄市| 沽源县| 和林格尔县| 双鸭山市| 全州县|