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 ...
随机推荐
- 探索HashMap源码 一行一行解析 jdk1.7版本
今天我们来说一说,HashMap的源码到底是个什么? 面试大厂这方面一定会经常问到,很重要的.以jdk1.7 为标准 先带着大家过一遍 是由数组.链表组成 , 数组的优点是:每个元素有对应下标, ...
- 小白学习vue第五天(理解使用组件开发,组件第一弹)
组件怎么从创建到使用? 第一步创建组件构造器对象 感觉个人理解就是创建一个模板,和创建MongoDB数据模板相似 const cpnC = Vue.extend({ template: ` <d ...
- SpringBoot - Bean validation 参数校验
目录 前言 常见注解 参数校验的应用 依赖 简单的参数校验示例 级联校验 @Validated 与 @Valid 自定义校验注解 前言 后台开发中对参数的校验是不可缺少的一个环节,为了解决如何优雅的对 ...
- 使用VNC远程安装CentOS 7操作系统
使用VNC远程安装CentOS 7操作系统 by 无若 数据中心一般都不在本地,如果希望重新安装系统,难道还要跑到数据中心...所以必须要有一种方式来远程解决这个问题. 目前CentOS 7主要使用的 ...
- Openresty Lua协程调度机制
写在前面 OpenResty(后面简称:OR)是一个基于Nginx和Lua的高性能Web平台,它内部集成大量的Lua API以及第三方模块,可以利用它快速搭建支持高并发.极具动态性和扩展性的Web应用 ...
- kong整合Cosul实践(3)
1. 准备工作: 需要.netcore或者java程序一套,引入consul第三方包 我这里搭建了一个.netcore的webapi项目,引入Consul第三方包,网上可查资料一堆 环境需要kong, ...
- MVC配置原理-源码
目录 举例 修改SpringBoot的默认配置 全面接管SpringMVC 参考链接 在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如 ...
- git常用命令究极记忆大法
第一点,我觉得也是最最重要的,就是明确git的三个区,工作区(working),暂存区(index),仓库(repository). 第二就是区与区之间的操作了. working与index之间: g ...
- 记一次Orika使用不当导致的内存溢出
hprof 文件分析 2021-08-24,订单中心的一个项目出现了 OOM 异常,使用 MemoryAnalyzer 打开 dump 出来的 hprof 文件,可以看到 91.27% 的内存被一个超 ...
- malloc 和new , free 和delete的区别
#include <iostream>using namespace std;class user{ public: int age; int number; void test() { ...