首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件通过邮递员上载到ASP.NET Core时出错415

将文件通过邮递员上载到ASP.NET Core时出错415
EN

Stack Overflow用户
提问于 2022-04-22 09:21:57
回答 1查看 602关注 0票数 1

我试图通过ASP.NET Core上传一个文件。我的行动是:

代码语言:javascript
复制
[HttpPost]
[Route("{id}")]
public async Task<IActionResult> PostImage([FromBody] IFormFile file, [FromRoute] int id)
{
    if(file.Length > 0)
    {
        var fileName = Path.GetFileName(file.FileName);
        var fileExtension = Path.GetExtension(fileName);
        var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/images", "Image-" + id + "." + fileExtension);
        using (var stream = new FileStream(path, FileMode.Create))
        {
            await file.CopyToAsync(stream);
        }
        return Ok(fileName + fileExtension);
    }
    return NotFound("File not found!");
}

当我使用Postman检查它的功能时,我会遇到错误415,并且Visual Studio不会跳转到断点:

"00-d411f8c099a9ca4db6fe04ae25c47411-dadd8cca7cc36e45-00“{”类型“:"https://tools.ietf.org/html/rfc7231#section-6.5.13",”标题:“不支持媒体类型”,“状态”:415,"traceId":https://tools.ietf.org/html/rfc7231#section-6.5.13"}

如何在代码中解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-22 10:49:48

如果要接收IFormFile,则需要post content-type=multiple/form-data,它来自form data,而不是body。还记得将[FromBody]更改为[FromForm]

邮差:

主计长:

代码语言:javascript
复制
[HttpPost]
[Route("{id}")]
public async Task<IActionResult> PostImage([FromForm] IFormFile file, [FromRoute] int id)

{}

如果您从body中发布文件,那么您可能会发布一个字节数组。如果您需要将IFormFile file更改为byte[] file

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71966380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档