Asp.Net 5上传文件 (Core API方式)
首先在控制器中注入IWebHostEnvironment
IWebHostEnvironment提供有关正在运行应用程序的Web托管环境的信息。
属于命名空间Microsoft.AspNetCore.Hosting
IWebHostEnvironment接口需要注入为控制器依赖性再后来整个控制器使用。
该IWebHostEnvironment接口有两个属性。
- WebRootPath -www文件夹的路径(获取或设置包含Web服务应用程序内容文件的目录的绝对路径)
- ContentRootPath -根文件夹路径包含了所有应用程序文件(获取或设置IFileProvider在WebRootPath指指点点。)
private readonly IWebHostEnvironment _webHostEnvironment; public CommonController(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}

此处根据WebRootPath = "D:\\source\\repos\\AnnualMeeting\\Game\\wwwroot",把文件放在wwwroot目录下
文件上传使用IFormFile

1 [Route("api/[controller]")]
2 [ApiController]
3 public class CommonController : ControllerBase
4 {
5 private readonly IWebHostEnvironment _webHostEnvironment;
6
7 public CommonController(IWebHostEnvironment webHostEnvironment)
8 {
9 _webHostEnvironment = webHostEnvironment;
10 }
11 [HttpPost]
12 [Route("FileUpload")]
13 public async Task<IActionResult> FileUpload(IFormFile files)
14 {
15
16 if (files == null && files.Length <= 0)
17 {
18 throw new Exception("Files is Null");
19 }
20
21 var fileExt = Path.GetExtension(files.FileName);
22 var newFileName = Guid.NewGuid().ToString() + fileExt;
23 var path = Path.Combine(_webHostEnvironment.WebRootPath, "Avatar\\" + newFileName);
24 try
25 {
26 await using var stream = System.IO.File.Create(path);
27 await files.CopyToAsync(stream);
28 return Ok(new { msg = "上传成功", fileName = newFileName });
29 }
30 catch (Exception e)
31 {
32 throw new Exception(e.Message);
33 }
34 }
35 }
在swagger中可直接上传测试

Asp.Net 5上传文件 (Core API方式)的更多相关文章
- Asp.Net Core WebApi 和Asp.Net WebApi上传文件
public class UpLoadController : ControllerBase { private readonly IHostingEnvironment _hostingEnviro ...
- asp.net 客户端上传文件全路径获取方法
asp.net 获取客户端上传文件全路径方法: eg:F:\test\1.doc 基于浏览器安全问题,浏览器将屏蔽获取客户端文件全路径的方法,只能获取到文件的文件名,如果需要获取全路径则需要另想其他 ...
- ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...
- asp.net 限制上传文件的大小与时间
在web.Config文件中配置限制上传文件大小与时间的字符串是在<httpRuntime><httpRuntime/>节中完成. maxRequsetLength 属性:用于 ...
- ASP.NET MVC上传文件
最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel { [Displ ...
- Asp.net:上传文件超过了最大请求长度
错误消息:超过了最大请求长度 错误原因:asp.net默认最大上传文件大小为4M,运行超时时间为90S. 解决方案 1. 修改web.config文件可以改变这个默认值 ...
- asp.net FileUpload上传文件夹并检测所有子文件
1.在FileUpload控件添加一个属性 webkitdirectory=""就可以上传文件夹了 <asp:FileUpload ID="FileUpload1& ...
- 【转】php通过curl跨域向asp.net服务器上传文件及参数
转:http://blog.sina.com.cn/s/blog_13331dce50102vq32.html 这是一个由php通过调用asp.net接口向asp.net服务器post上传文件及参数并 ...
- asp.net 怎么上传文件夹啊,不传压缩包!
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...
随机推荐
- 在Java开发工具的project中使用相对路径
1.在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了.创建文件的写法是: File f = new File("src/com/lavas ...
- 庆FastGithub加入.NET Core Community
.NET Core Community .NET Core Community是一个基于并围绕着 .NET 技术栈展开组织和活动的非官方.非盈利性的民间开源社区,提供了很多优秀的 .NET 开源项目. ...
- Python实现猜数字游戏
Python中实现猜数字游戏代码如下: import random # 引入随机数标准库-random # 定义数字上下限和最大游戏次数 min_num = 1 max_num = 10 guess_ ...
- Run Clojure Script with External Dependencies without leiningen
The normal way of deploy clojure files is using leiningen. But if we have no leiningen, or the scrip ...
- iOS-block循环引用详解和应用
Block循环引用 什么情况下block会造成循环引用 ARC 情况下 block为了保证代码块内部对象不被提前释放,会对block中的对象进行强引用,就相当于持有了其中的对象,而如果此时block中 ...
- Python - typing 模块 —— Callable
前言 typing 是在 python 3.5 才有的模块 前置学习 Python 类型提示:https://www.cnblogs.com/poloyy/p/15145380.html 常用类型提示 ...
- 002 TCP/IP模型
一.TCP/IP 的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属于TCP/IP协议,而T ...
- Spring中为什么不建议使用字段注入
在使用Idea中通过注解注入字段时是否遇见过这样一个提示: Field injection is not recommended(不推荐使用字段注入) 一. 什么是字段注入,Spring中依赖注入的方 ...
- CNN卷积神经网络详解
前言 在学计算机视觉的这段时间里整理了不少的笔记,想着就把这些笔记再重新整理出来,然后写成Blog和大家一起分享.目前的计划如下(以下网络全部使用Pytorch搭建): 专题一:计算机视觉基础 介 ...
- .NET Core:在ASP.NET Core WebApi中使用Cookie
一.Cookie的作用 Cookie通常用来存储有关用户信息的一条数据,可以用来标识登录用户,Cookie存储在客户端的浏览器上.在大多数浏览器中,每个Cookie都存储为一个小文件.Cookie表示 ...