.Net Core创建Api进行文件上传功能

1、Net Core创建api接口,用于接收外部请求,进行文件的上传

2、添加控制器类,添加如下代码:

[HttpPost]
        [Route("PostFile")]
        public String PostFile([FromForm] IFormCollection formCollection)
        {
            String result = "Fail";
            if (formCollection.ContainsKey("user"))
            {
                var user = formCollection["user"];
            }
            FormFileCollection fileCollection = (FormFileCollection)formCollection.Files;
            foreach (IFormFile file in fileCollection)
            {
                StreamReader reader = new StreamReader(file.OpenReadStream());
                String content = reader.ReadToEnd();
                String name = file.FileName;
                String filename = @"D:/Test/" + name;
                if (System.IO.File.Exists(filename))
                {
                    System.IO.File.Delete(filename);
                }
                using (FileStream fs = System.IO.File.Create(filename))
                {
                    // 复制文件
                    file.CopyTo(fs);
                    // 清空缓冲区数据
                    fs.Flush();
                }
                result = "Success";
            }
            return result;
        }

3、修改其中需要注意的点,如文件夹是否存在未做判断,需要提前创建文件夹或添加文件夹判断

4、通过postman进行接口测试,form-data数据请求方式,key选择File,value选择文件,进行提交(如图)。

5、注意问题:提交请求之后,如遇到报错返回代码413,通常是文件请求大小被限制。目前可提供以下几种解决方案,但在不同条件下生效的方式不一样,需要一一测试

方法一:在接口方法上添加特性[DisableRequestSizeLimit]

同时在startup.cs中的添加

 services.Configure<FormOptions>(x =>
            {
             x.MultipartBodyLengthLimit = 209_715_200;//最大200M
            });

方法二:在startup.cs中的添加

ervices.Configure<FormOptions>(x =>
      {
          x.ValueLengthLimit = int.MaxValue;
          x.MultipartBodyLengthLimit = int.MaxValue;
          x.MemoryBufferThreshold = int.MaxValue;
      });

如果后续有其它问题或解决方案,将在评论区进行补充。

到此这篇关于.Net Core创建Api进行文件上传的文章就介绍到这了,更多相关.Net Core文件上传内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • .Net Core创建Api进行文件上传功能

    1.Net Core创建api接口,用于接收外部请求,进行文件的上传 2.添加控制器类,添加如下代码: [HttpPost] [Route("PostFile")] public String PostFile([FromForm] IFormCollection formCollection) { String result = "Fail"; if (formCollection.ContainsKey("user")) { var user

  • asp.net core实现文件上传功能

    本文实例为大家分享了单文件上传.多文件上传的功能,供大家参考,具体内容如下 单文件上传  上传文件在Web应用程序中是一个常见的功能.在asp.net core中上传文件并保存在服务器上,是很容易的.下面就来演示一下怎么样在 ASP.NET Core项目中进行文件上传.  首先,创建一个 asp.net core 项目,然后在Controller文件件添加一个HomeController,然后在 Views 文件夹的 Home 文件夹里添加一个 New.cshtml 视图文件.如下图: 添加一个

  • 使用最小 WEB API 实现文件上传的Swagger支持

    目录 前言: 一.允许ContentType 二.自定义OperationFilter 前言: 上回,我们使用最小 WEB API 实现文件上传功能<​ ​使用最小 WEB API 实现文件上传会遇到的坑​​>,虽然客户端访问是正常的,但是当打开 Swagger 页面时,发现是这样的: 没法使用 Swagger 页面测试. 一.允许 Content Type 正常的 Swagger 页面应该是这样的: 看来,我们需要指定 Content Type: app.MapPost("/upl

  • 使用最小 WEB API 实现文件上传会遇到的坑

    目录 前言: 一.实现代码 二.允许ContentType 三.惊现BUG 四.解决方案 结论: 前言: 在 .NET 6 之前,实现文件上传功能十分简单: [HttpPost("upload")] public async Task<IActionResult> Upload(IFormFile file) {     //对file执行操作     return Ok(file.FileName); } 但是,当使用 .NET 6 的最小 WEB API 来实现相同功能

  • MVC中基于Ajax和HTML5实现文件上传功能

    引言 在实际编程中,经常遇到实现文件上传并显示上传进度的功能,基于此目的,本文就为大家介绍不使用flash 或任何上传文件的插件来实现带有进度显示的文件上传功能. 基本功能:实现带有进度条的文件上传功能 高级功能:通过拖拽文件的操作实现多个文件上传功能 背景 HTML5提供了一种标准的访问本地文件的方法--File API规格说明,通过调用File API 能够访问文件信息,也可以利用客户端来验证上传文件的类型和大小是否规范. 该规格说明包含以下几个接口来使用文件: File接口:具有文件的"读

  • AjaxFileUpload+Struts2实现多文件上传功能

    本文重点给大家介绍AjaxFileUpload+Struts2实现多文件上传功能,具体实现代码大家参考下本文. 单文件和多文件的实现区别主要修改两点, 一是插件ajaxfileupload.js里接收file文件ID的方式 二是后台action是数组形式接收 1.ajaxFileUpload文件下载地址http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ 2.引入jquery-1.8.0.min.js.ajaxFileUpload.js文件 3.文

  • Ajax 配合node js multer 实现文件上传功能

    说明 作为一个node 初学者,最近在做一个聊天软件,支持注册.登录.在线单人.多人聊天.表情发送.各种文件上传下载.增删好友.聊天记录保存.通知声开关.背景图片切换.游戏等功能,所以用到了multer 模块,经过各种查文档,做demo例子,终于成功实现单个文件上传功能,支持大部分文件格式上传,同时显示到网页上 效果 是不是有种微信即视感,没错,就是根据网页版微信来做的, 要实现整体效果的话,要配合css和html来做,前端初学者,第一次发博客,实在捉急,近期,将会将代码放到github上去,感

  • Spring实现文件上传功能

    本篇文章,我们要来做一个Spring的文件上传功能: 1. 创建一个Maven的web工程,然后配置pom.xml文件,增加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.0.2.RELEASE</version> </dep

  • Struts2实现文件上传功能

    Servlet 3.0规范的HttpServletRequest已经提供了方法来处理文件上传但这种上传需要在Servlet中完成.而Struts2则提供了更简单的封装. Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,因此使用Struts2的文件上传功能,则需要添加两个jar包,即commons-io-2.2.jar和commons-fileupload-1.3.1.jar. Struts2简单文件上传示例: 1.文件上传页面 为了能上传文件,表单的m

  • Spring boot实现文件上传功能

    本文实例为大家分享了Spring boot实现文件上传的具体代码,供大家参考,具体内容如下 1. 创建一个Maven的web工程,然后配置pom.xml文件,增加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.0.2.RELEASE</v

随机推荐