写点什么

NetWebCore 实现文件上传功能

用户头像
happlyfox
关注
发布于: 2021 年 05 月 13 日

关于我

我的博客 | 欢迎关注

前言

在进行 Web 前后端分析开始时,我们经常会碰到文件上传的需求。上传用户头像,上传认证材料、审核材料等,这些都可以归类为文件上传功能。


今天主要把自己在开发过程中的心得进行一个整理,供大家学习。

开启静态文件中间件

默认情况下,静态文件(如 HTML、CSS、图像和 JavaScript)是 ASP.NET Core 应用直接提供给客户端的资产。


开启静态文件访问,即可以通过浏览器地址输入http://127.0.0.1:8080/images/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 = "未检测到上传的文件" }); }
}
}
复制代码

参考

ASP.NET Core单文件和多文件上传并保存到服务端

The END

本文到此结束,希望对你有帮助 😃


更多精彩 技术文章汇总在我的 公众号程序员工具集 ,持续更新,欢迎关注订阅收藏。


如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。


福利姬


公众号后台回复:“关注礼包”,获取价值 5K 的视频学习资源


公众号后台回复:“技能图谱”,送你一份最全的开发者技能图谱

发布于: 2021 年 05 月 13 日阅读数: 13
用户头像

happlyfox

关注

公众号 程序员工具集 2021.02.18 加入

分享优秀的开源项目、学习资源和常用工具。谈论新闻热点、职场经验、学习感悟。共同进步!

评论

发布
暂无评论
NetWebCore实现文件上传功能