首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内容类型多部分/表单数据上载IFormFile时缺少的内容类型边界

内容类型多部分/表单数据上载IFormFile时缺少的内容类型边界
EN

Stack Overflow用户
提问于 2020-03-28 00:33:11
回答 1查看 863关注 0票数 0

我有以下代码可以将文件上传到aspnet核心Api。

代码语言:javascript
复制
 [HttpPost]
    [Produces(typeof(MissionBalanceWithMissionBalanceLinesModel))]
    public async Task<IActionResult> UploadBalance(IFormFile upload)
    {
        return Ok("successfully uploaded");
    }

和角码

代码语言:javascript
复制
   const file: File = event.target.files[0];
   const upload= new FormData();
   fileToUpload.append('upload', file, file.name);
   const blob = fileToUpload as any
   let options_ : any = {
        body: blob,
        observe: "response",
        responseType: "blob",           
        headers: new HttpHeaders({
            /* "Content-Type": "multipart/form-data", */
            "Accept": "text/plain"
        })
    };

    return this.http.request("post", url_, options_)...

错误:System.IO.InvalidDataException:缺少内容类型边界.

注释/* "Content-Type": "multipart/form-data", */行会有所帮助,但由于这是NswagStudio生成的代码,我想找到另一个解决方案。

或者如何告诉NswagStudio不要生成这个内容类型的标题?

EN

回答 1

Stack Overflow用户

发布于 2020-03-28 01:34:17

您应该尽量避免使用请求方法,而是使用Post方法。您可以查看这里文档

代码语言:javascript
复制
addHero (hero: Hero): Observable<Hero> {
  return this.http.post<Hero>(this.heroesUrl, hero, httpOptions)
    .pipe(
      catchError(this.handleError('addHero', hero))
    );
}

所以你的代码应该是

代码语言:javascript
复制
const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'multipart/form-data'
  })
};

return this.http.post(url, fileToUpload, httpOptions)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60895924

复制
相关文章

相似问题

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