加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 文件POST返回错误415

发布时间:2020-12-16 01:27:25 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的ASP.NET Core 2项目中创建文件上载功能. 我将POST呼叫发送到WEBApi服务时收到此响应: Status Code: 415; Unsupported Media Type 我的控制器操作如下所示: [HttpPost] [Route("Upload")] [Authorize] public Guid Post([FromBody]IFormFil
我正在尝试在我的ASP.NET Core 2项目中创建文件上载功能.
我将POST呼叫发送到WEBApi服务时收到此响应:

Status Code: 415; Unsupported Media Type

我的控制器操作如下所示:

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

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

        readStream.Read(fileData,fileData.Length);

        return _printServiceManager.SaveFile(fileData);
    }

我从我的Angular 6客户端应用程序和Postman调用它,但没有任何变化.我在这里找到了一个关于这个主题的问题,但给出的解决方案是将我的标题更改为“Content-Type:application / json”.没有变化.
然后我尝试在网上搜索其他一些提示,但我找到的唯一一个提醒我再次更改内容类型标题:“Accept:application / json”.不行.

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

试图按照建议再次更改内容类型,但我获得了相同的结果:

enter image description here

提前致谢.

解决方法

根据定义,使用FromBody无法获得IFormFile. IFormFile仅适用于multipart / form-data编码的请求,而FromBody仅适用于JSON或XML请求体.

因此,您有两条路径:

>将文件提交为multipart / form-data(即传统帖子).改为使用[FromForm](或者完全忽略该属性).>实际上将文件作为JSON提交,在这种情况下,您需要绑定到一个类来表示您要发布的JSON对象.文件数据应该是JSON对象中的base64编码字符串,然后您将其绑定到byte []类型的属性. ASP.NET Core将把base64字符串解码为字节数组.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读