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

首頁 > 編程 > C# > 正文

C#實(shí)現(xiàn)文件上傳與下載功能實(shí)例

2020-01-24 00:54:58
字體:
供稿:網(wǎng)友

最近學(xué)習(xí)了 C#實(shí)現(xiàn)文件上傳與下載,現(xiàn)在分享給大家。

1、C#文件上傳

創(chuàng)建MyUpload.htm頁面,用于測試

<form name="form1" method="post" action="UploadFile.aspx" id="form1"  enctype="multipart/form-data">   <input type="file" id="txtFile" name="picfile" /></br>   <input type="submit" value="上傳" /> </form> 

創(chuàng)建UploadFile.aspx文件,在UploadFile.aspx.cs鍵入如下代碼:

Random rnd = new Random();              //產(chǎn)生隨機(jī)數(shù) private string _directory = @"/File/UploadFile";   //目錄 protected void Page_Load(object sender, EventArgs e) {   try   {     if (RequestFilesCount > 0)     {       //判斷文件大小       int length = RequestFiles[0]ContentLength;       if (length > 1048576)       {         ResponseWrite("文件大于1M,不能上傳");         return;       }        string type = RequestFiles[0]ContentType;       string fileExt = PathGetExtension(RequestFiles[0]FileName)ToLower();       //只能上傳圖片,過濾不可上傳的文件類型       string fileFilt = "gif|jpg|php|jsp|jpeg|png|";       if (fileFiltIndexOf(fileExt) <= -1)       {         ResponseWrite("對不起!請上傳圖片!!");         return;       }       else       {         string fileName = ServerMapPath(_directory) + "http://" + DateTimeNowToString("yyyyMMddHHmmssfff") + rndNext(10, 99)ToString() + fileExt;         RequestFiles[0]SaveAs(fileName);         ResponseWrite("上傳成功!");       }     }   }   catch   {     throw new Exception();   } } 

2 、C#文件下載

創(chuàng)建DownloadFile.aspx,在DownloadFile.aspx.cs鍵入如下方法:

/// <summary> /// C#文件下載 /// </summary> /// <param name="filename"></param> public void MyDownload(string filename) {    string path = ServerMapPath("/File/"+filename);   if(!FileExists(path))   {     ResponseWrite("對不起!文件不存在!!");     return;   }   SystemIOFileInfo file = new SystemIOFileInfo(path);   string fileFilt="asp|aspx|php|jsp|ascx|config|asa|"; //不可下載的文件,務(wù)必要過濾干凈   string fileName = fileName;   string fileExt = fileNameSubstring(filenameLastIndexOf(""))Trim()ToLower();   if(fileFiltIndexOf(fileExt)!=-1)   {     ResponseWrite("對不起!該類文件禁止下載!!");   }   else   {     ResponseClear();     ResponseAddHeader("Content-Disposition", "attachment; filename=" + HttpUtilityUrlEncode(fileName));     ResponseAddHeader("Content-Length", fileLengthToString());     ResponseContentType = GetContentType(HttpUtilityUrlEncode(fileExt));     ResponseWriteFile(fileFullName);     ResponseEnd();   } }  /// <summary> /// 獲取下載類型 /// </summary> /// <param name="fileExt"></param> /// <returns></returns> public string GetContentType(string fileExt) {   string ContentType;   switch (fileExt)   {     case "asf":       ContentType = "video/x-ms-asf"; break;     case "avi":       ContentType = "video/avi"; break;     case "doc":       ContentType = "application/msword"; break;     case "zip":       ContentType = "application/zip"; break;     case "xls":       ContentType = "application/vndms-excel"; break;     case "gif":       ContentType = "image/gif"; break;     case "jpg":       ContentType = "image/jpeg"; break;     case "jpeg":       ContentType = "image/jpeg"; break;     case "wav":       ContentType = "audio/wav"; break;     case "mp3":       ContentType = "audio/mpeg3"; break;     case "mpg":       ContentType = "video/mpeg"; break;     case "mepg":       ContentType = "video/mpeg"; break;     case "rtf":       ContentType = "application/rtf"; break;     case "html":       ContentType = "text/html"; break;     case "htm":       ContentType = "text/html"; break;     case "txt":       ContentType = "text/plain"; break;     default:       ContentType = "application/octet-stream";       break;   }   return ContentType; } 

*如何獲取現(xiàn)有文件的ContentType屬性

/// <summary> /// 獲取現(xiàn)有文件的ContentType屬性 /// </summary> /// <param name="filename"></param> /// <returns></returns> public string GetFileContentType(string filename) {   string[] array = filenameSplit('');   string result = stringEmpty;   string suffix = "" + array[arrayLength - 1];   MicrosoftWinRegistryKey rg = MicrosoftWinRegistryClassesRootOpenSubKey(suffix);   object obj = rgGetValue("Content Type");   result = obj != null ? objToString() : stringEmpty;   rgClose();   return result; }  

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 连江县| 延吉市| 蓬溪县| 朝阳市| 三明市| 剑川县| 静乐县| 禹州市| 关岭| 克拉玛依市| 柳林县| 郎溪县| 梅河口市| 绥滨县| 神池县| 赣榆县| 行唐县| 萨嘎县| 蕉岭县| 鄂托克前旗| 泸水县| 翁牛特旗| 砀山县| 离岛区| 闵行区| 怀远县| 平顶山市| 申扎县| 马龙县| 呈贡县| 大足县| 甘泉县| 成武县| 尉氏县| 固镇县| 灵宝市| 固镇县| 固镇县| 临猗县| 吉木乃县| 苍山县|