.Net Core WebApi文件上传

  1. 我们在 .Net Core 里面进行文件上传的时候通常会遇到一个问题,就是默认限制文件大小的问题。它默认不能超过30MB.实际上,可能只有28.多MB所以,为了解决这个问题。我们就需要把他的限制给他取消掉;
  2. 大家可以使用分片上传的方法来进行解决。如果不会或者觉得分片上传方法比较麻烦就可以使用下面的这个方法。相比较于分片上传方法,他有很多弊端如上传比较慢,占用比较高,比较消耗性能。但是人数少的话可以满足我们的需求

我们项目如果没上线,只跑本地的话就只需要添加两个特性就行了

但是如果我们需要上线,跑IIS的话,就需要配置发布文件,和IIS服务

 本方法为本地上传——无线上存储根路径——存到指定文件夹

一、写上我们的上传文件的方法

//添加两个特性,解除大小限制
[RequestFormLimits(MultipartBodyLengthLimit = int.MaxValue)]
[RequestSizeLimit(int.MaxValue)]
//文件上传的方法
public string UploadFile(IFormFile file)
{
//文件上传后需要保存的路径地址  这里写的是项目地址下的某个文件夹
var filePath = Directory.GetCurrentDirectory() + "\\wwwroot\\Upload\\" + file.FileName;
//给文件添加读写权限
using (FileStream fs = new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.ReadWrite)) {
//把文件复制到我们刚才获取的那个路径里面
file.CopyTo(fs);
}
return "ok";
}

加上特性之后我们就可以上传超过30MB的文件了。

注意:不使用分片上传还是尽量不要让文件太大。否则容易照成占用过多崩溃!!

 


二、如果我们需要发布项目到IIS

需要配置IIS中网站的属性,和发布文件中的webconfig文件

如果不配置的话,就会报错413

IIS上需要点击我们的项目,然后再右侧点击网站的配置管理器

.Net Core WebApi文件上传_第1张图片

 .Net Core WebApi文件上传_第2张图片

 最后再发布的项目文件里面的webconfig文件里面的中添加代码


      
                
      

 里面的数字就是大小,都是用字节来表示的。配置多大就用多大,比如我这个二十一亿大概就是2G,大家可以自行换算。

博客园地址:https://www.cnblogs.com/laoer666/articles/17218215.html

你可能感兴趣的:(.NET/C#,.netcore,c#)