.netCore5.0WebAPI 文件上传

复制代码
 private readonly IWebHostEnvironment webHostEnvironment;
public
IacitonResult TestUpLoad(IFormFile formFile) { //第二种 Request.Form.File
   //判断上传文件数量
   var count=Request.Form.File.Count;
if(count<=0)
   {
return OK("未选择文件");
   }
//限制上传文件类型
List<String> fileType=new List<String>(){".doc",".docx",".jpg",".png",".gif",".xls",".xlsx"};
//获取文件扩展名
var extension=formFile.FileName;
var flag=fileType.Exists(f=>f.equals(fileType));
if(!flag)
{
returnOK("只能上传图片、excel、word");
}
//获取文件上传路径
string Path=System.Io.Path.Combine(
webHostEnvironment.ContentRootPath,"File")//文件夹名称
//文件路径是否正确
var pathFlag=System.Io.Directory.Exsits(Path)
if(!pathFlag)
    {
      //创建路径
      System.Io.Directory.CreateDirectory(Path)
    }    
//给文件名其唯一标识防止冲突
stirng newName=System.DateTime.Now.ToString("yyyyMMddhhmmssSSS")+extension;
//合并文件夹路径及文件名称
string filePath=System.Io.Path.Combine(path,newName);
//通过文件流克隆到当前文件夹
using(var stream=new System.Io.File.Create(filePaht)) //继承于IDisposable 使用using释放流
{
formFile.Copyto(stream) //Copyto
}
//把上传文件名称及服务器路径返回前端使用
return Ok(oldName=form.FileName,url="")

}
复制代码

 

 1、创建接口,提供上传方法

  参数使用:在接口调试时,可以通过上传方式调试 

      Request.Form.File方式进行批量上传

2、判断是否有文件、文件类型是否符合要求、当前文件夹是否存在  

3、上传

4、跟.NETfFramWork相比,逻辑都是一样的,只不过framwork当中提供获取文件路径方法MapPaht和保存的方法Saveas()实现方法不一样而已,跟高的版本相同

posted @   Join_It  阅读(446)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示