0

这是我的邮递员请求 => https://i.stack.imgur.com/ZRp49.png

这是我的控制器方法 https://i.stack.imgur.com/V2ITY.png

实际上我有这样的 URL - https://localhost:1111/api/user/1/avatar 现在当我点击我的端点时,我收到了类似的错误

“System.InvalidOperationException:无法创建“Microsoft.AspNetCore.Http.FormFile”类型的实例。模型绑定的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数。或者,给“avatar”参数一个非-null 默认值。”

如何使用上述 URL 上传图片?我正在使用 ASP.Net 核心 3.1 Web API。

4

2 回答 2

2

您应该将您的FormFile类型更改为IFormFile类型,然后在邮递员中,您应该命名您的文件参数。

[HttpPost("user/{id=0}/{avatar}")]
[Consumes("multipart/form-data")]
public IActionResult TestImage(int id, [FromForm]IFormFile avatar)
{
    return Ok();
}

在此处输入图像描述

于 2020-07-31T06:58:55.717 回答
0

您可以使用[FromRoute]标记id参数而不更改使用类型:

[HttpPost("user/{id=0}/avatar")]
public IActionResult TestImage([FromRoute] int id, IFormFile avatar)
{
    return Ok($"id: {id}, avatar name: {avatar.FileName}");
}

端点 URL 将类似于:

https://localhost:1111/TestUploadAvatar/user/324/avatar
于 2020-11-15T22:23:06.980 回答