C#文件上传的常用几种方式

编程入门 行业动态 更新时间:2024-10-14 14:20:59

C#文件上传的常用<a href=https://www.elefans.com/category/jswz/34/1769370.html style=几种方式"/>

C#文件上传的常用几种方式

1.第一种上传方式,基本通用于所有的框架

        [HttpPost][Route("Common/uploadFile1")]public string uploads(){HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统contextHttpRequestBase request = context.Request;//定义传统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<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);}//创建特定名称的文件流await using var stream = new FileStream(savaPath + fileId + fileSuffix, FileMode.Create);try{//上传文件await file.CopyToAsync(stream);stream.Flush();return uri + fileId + fileSuffix;} catch (Exception ex)  {//上传异常处理 return ex.Message;}

 

3.上传方式,可以用于Core 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);}
注:以上就是三种文件上传的方式,可以采用第一种方式,兼容性好

更多推荐

C#文件上传的常用几种方式

本文发布于:2023-11-30 00:12:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1648077.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:几种   文件上传   常用   方式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!