如何用.netwebcore实现文件上传功能
本篇内容介绍了“如何用.net web core实现文件上传功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联专注于网站建设,为客户提供做网站、成都做网站、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,品牌网站制作,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。
前言
在进行Web前后端分析开始时,我们经常会碰到文件上传的需求。上传用户头像,上传认证材料、审核材料等,这些都可以归类为文件上传功能。
今天主要把自己在开发过程中的心得进行一个整理,供大家学习。
开启静态文件中间件
默认情况下,静态文件(如 HTML、CSS、图像和 JavaScript)是 ASP.NET Core 应用直接提供给客户端的资产。
开启静态文件访问,即可以通过浏览器地址输入http://127.0.0.1:8080/images/1(1).png访问图片或其他文件的方式。需要在中间件中进行配置。
StartUp.cs中Configure方法增加一行代码。即添加默认的静态文件中间件。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseStaticFiles(); }
详情参考官方文档:
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1
文件上传功能
前后台分离项目,所以创建WebApi项目。新建一个控制器,文件名FileController,开始进行一个简单的文件上传编码。
public class FileController : ControllerBase { private static IWebHostEnvironment _webHostingEnvironment; public FileController(IWebHostEnvironment hostingEnvironment) { _webHostingEnvironment = hostingEnvironment; } public IActionResult UploadFile(IFormFile formFile) { //var formFile = Request.Form.Files[0];//获取请求发送过来的文件 var webRootPath = _webHostingEnvironment.WebRootPath;//应用程序根目录 string dirPath = webRootPath + "/UploadFile/" + DateTime.Now.ToString("yyyyMMdd"); //判断保存的文件夹是否存在,不存在创建 if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } if (formFile == null) { //保存的文件名称可能存在重复,所以需要在后台对文件进行重命名 string fileExtesion = Path.GetExtension(formFile.FileName); string fileName = Path.GetFileName(formFile.FileName) + "_" + Guid.NewGuid().ToString() + "." + fileExtesion; //保存文件 using (var fs = System.IO.File.Create(webRootPath + "/" + fileName)) { formFile.CopyTo(fs); } return new JsonResult(new { success = true, errMsg = "文件上传成功" }); } else { return new JsonResult(new { success = false, errMsg = "未检测到上传的文件" }); } } }
“如何用.net web core实现文件上传功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
本文标题:如何用.netwebcore实现文件上传功能
标题URL:http://scyanting.com/article/pehcjc.html