C#?Web實現(xiàn)文件上傳的示例詳解
更新時間:2023年11月09日 11:16:18 作者:大陽光男孩
這篇文章主要為大家詳細(xì)介紹了C#?Web實現(xiàn)文件上傳的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
1.第一種上傳方式,基本通用于.net所有的框架
[HttpPost] [Route("Common/uploadFile1")] public string uploads() { HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//獲取傳統(tǒng)context HttpRequestBase request = context.Request;//定義傳統(tǒng)request對象 HttpFileCollectionBase files = request.Files; string fileSuffix = Path.GetExtension(files[0].FileName).ToLower(); string fileId = Guid.NewGuid().ToString(); string dateKey = DateTime.Now.ToString("yyyyMMdd"); string savaPath, uri; uri = @"/fileData/rest/" + dateKey + @"/"; savaPath = request.MapPath(uri); if (!Directory.Exists(savaPath)) { Directory.CreateDirectory(savaPath); } try { files[0].SaveAs(savaPath + fileId + fileSuffix); return uri + fileId + fileSuffix; }catch (Exception ex){ return ex.Message; } }
2.WebAPI可以用這個來,但是在低一點的版本沒有IFormFile 這個對象
/// <summary> /// 通用文件上傳接口 /// </summary> /// <param name="file"></param> /// <returns></returns> [HttpPost] [Route("Common/uploadFile2")] public async Task<Axios<string>> upload(IFormFile file) { string fileSuffix = Path.GetExtension(file.FileName).ToLower(); string fileId = Guid.NewGuid().ToString(); string dateKey = DateTime.Now.ToString("yyyyMMdd"); string savaPath,uri; uri = @"/fileData/rest/" + dateKey + @"/"; savaPath = Path.Combine(Directory.GetCurrentDirectory(), uri); if (!Directory.Exists(savaPath)){Directory.CreateDirectory(savaPath);} //創(chuàng)建特定名稱的文件流 await using var stream = new FileStream(savaPath + fileId + fileSuffix, FileMode.Create); try { //上傳文件 await file.CopyToAsync(stream); stream.Flush(); return Axios<string>.ok(uri + fileId + fileSuffix); } catch (Exception ex) { //上傳異常處理 return Axios<string>.fail(ex.Message); }
3.上傳方式,可以用于.netCore MVC方式的文件上傳
[HttpPost] public JsonResult uploadX(HttpPostedFileBase file) { String suffix = file.FileName.Substring(file.FileName.LastIndexOf(".", StringComparison.Ordinal)); string fileName = Guid.NewGuid().ToString().Replace("-", "") + suffix; string uri = string.Format("{0}/{1}/{2}/", "fileData", "rest", DateTime.Now.Year+""+DateTime.Now.Month +""+ DateTime.Now.Day); string filePath = Server.MapPath(string.Format("~/{0}",uri)); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } file.SaveAs(Path.Combine(filePath, fileName)); return Json(uri + fileName); }
注:以上就是三種文件上傳的方式,可以采用第一種方式,兼容性好
到此這篇關(guān)于C# Web實現(xiàn)文件上傳的示例詳解的文章就介紹到這了,更多相關(guān)C#文件上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#搜索TreeView子節(jié)點,保留父節(jié)點的方法
這篇文章主要介紹了C#搜索TreeView子節(jié)點,保留父節(jié)點的方法,實例分析了C#操作TreeView節(jié)點的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09