首页 > 解决方案 > .net core web api上传文件失败,请求错误

问题描述

我正在尝试使用 .net core 2.1 web api 将几个文件上传到 web api 端点

这是我的控制器和上传方法

[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class PagosController : ControllerBase{
        [HttpPost("UploadDescuento")]
        public async Task<IActionResult> UploadDescuento(IEnumerable<IFormFile> files)
        {

            return Ok();
        }
}

与邮递员一起,我向控制器提出了请求,但我第一次认为我的请求不正确时收到了错误请求,因此我在邮递员中执行了相同的请求

POST /api/pagos/UploadDescuento HTTP/1.1
Host: localhost:59039
User-Agent: PostmanRuntime/7.16.3
Accept: */*
Cache-Control: no-cache
Postman-Token: 7535f283-89fb-4f86-bbb9-3d78ec302ebe,19a709dd-37c9-48ef-a157-c21f99861260
Host: localhost:59039
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept-Encoding: gzip, deflate
Content-Length: 1320022
Connection: keep-alive
cache-control: no-cache


Content-Disposition: form-data; name="files"; filename="/C:/Users/jcpc9/Pictures/0-5616x3744.jpg


------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="files"; filename="/C:/Users/jcpc9/Pictures/0-5616x3744.jpg


------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="files"; filename="/C:/Users/jcpc9/Pictures/101-2621x1747.jpg


------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="pago"

234235834
------WebKitFormBoundary7MA4YWxkTrZu0gW--

但我的请求越来越差

{
    "": [
        "The input was not valid."
    ]
}

标签: asp.net-core.net-coreasp.net-core-webapi

解决方案


我的解决方案是删除 de 属性 ApiController 我不知道为什么文档没有说太多 [ https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-2.2#multipartform-data -request-inference]我不明白有什么问题

[Produces("application/json")]
    [Route("api/[controller]")]
    //[ApiController]<<remove this
    public class PagosController : ControllerBase

和方法

[HttpPost("UploadDescuento")]
public async Task<IActionResult> UploadDescuento(IEnumerable<IFormFile> files)

如果有人知道为什么这个属性“[ApiController]”会导致这个问题,我希望你能解释一下或者至少是一篇好文章


推荐阅读