gpt4 book ai didi

c# - 文件 POST 返回错误 415

转载 作者:行者123 更新时间:2023-12-01 19:43:13 26 4
gpt4 key购买 nike

我正在尝试在我的 ASP.NET Core 2 项目中创建文件上传功能。
当向我的 WEBApi 服务发送 POST 调用时,我收到此响应:

Status Code: 415; Unsupported Media Type

我的 Controller 操作如下所示:

    [HttpPost]
[Route("Upload")]
[Authorize]
public Guid Post([FromBody]IFormFile file)
{
Stream readStream = file.OpenReadStream();

byte[] fileData = new byte[file.Length];

readStream.Read(fileData, 0, fileData.Length);

return _printServiceManager.SaveFile(fileData);
}

我从我的 Angular 6 客户端应用程序和 Postman 中调用它,但没有任何变化。我在这里发现了一个关于此主题的现有问题,但给出的解决方案是将我的 header 更改为“Content-Type:application/json”。没有变化。
然后我尝试在线搜索其他提示,但我发现的唯一提示告诉我再次更改内容类型 header ,如下所示:“Accept:application/json”。也不干活了。

也许我问的是一些简单的问题,或者我作为一名网络开发人员应该知道的事情,但我来自后端导向的职业,我试图找出我的代码出了什么问题。因此,如果您有关于该主题的完整资源,请分享!

尝试按照建议再次更改内容类型,但我得到了相同的结果:
enter image description here

提前致谢。

最佳答案

根据定义,无法使用 FromBody 获取 IFormFileIFormFile 仅适用于 multipart/form-data 编码请求,而 FromBody 仅适用于 JSON 或 XML 请求正文。

因此,您有两条路:

  1. multipart/form-data 形式提交文件(即传统帖子)。请改用 [FromForm](或者干脆忽略该属性)。

  2. 实际上以 JSON 形式提交文件,在这种情况下,您需要绑定(bind)到一个类来表示您要发布的 JSON 对象。文件数据应该是 JSON 对象中的 base64 编码字符串,然后您将其绑定(bind)到 byte[] 类型的属性。 ASP.NET Core 将负责将 Base64 字符串解码为字节数组。

关于c# - 文件 POST 返回错误 415,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com