首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法上载文件,因为没有为类型为StandardMultipartFile的请求正文设置内容类型"multipart/form-data“

无法上载文件,因为没有为类型为StandardMultipartFile的请求正文设置内容类型"multipart/form-data“
EN

Stack Overflow用户
提问于 2019-06-22 06:28:28
回答 2查看 1.7K关注 0票数 2

我有一个远程服务A,它执行文件上传。我有一个服务B,它通过FeignClient调用服务A的上传接口来上传文件

服务A中的方法定义类似于

代码语言:javascript
复制
    ResponseEntity<?> upload(@RequestPart("file") MultipartFile file) { }

服务B中的方法是

代码语言:javascript
复制
    @FeignClient(url = "http://localhost:5000/")
    public interface uploadService {

    @RequestMapping(method = RequestMethod.POST, value = "/serviceA/upload")
    @Headers("Content-Type: multipart/form-data")
    void uploadFile(@RequestPart("file") MultipartFile file);
}

我收到错误Content-类型"multipart/form-data“未为类型为StandardMultipartFile的请求正文设置

我已经尝试了https://github.com/spring-cloud/spring-cloud-netflix/issues/867https://github.com/OpenFeign/feign-form上的大多数建议,但都不适用于我

EN

回答 2

Stack Overflow用户

发布于 2019-06-23 00:47:58

我能够通过简单地在RequestMapping中添加consumes = "multipart/form-data"来解决这个问题。原因是我将基于spring的注解与开放的feign注解混合在一起。@Headers("Content-Type: multipart/form-data")Open feign一起工作。在这里,我使用的是spring-cloud-openfeign,它提供了对Open feign的抽象,并使其易于与spring框架组件集成。

代码语言:javascript
复制
    @FeignClient(url = "http://localhost:5000/")
    public interface uploadService {

    @RequestMapping(method = RequestMethod.POST, value = "/serviceA/upload" consumes = "multipart/form-data" )
     void uploadFile(@RequestPart("file") MultipartFile file);
    }
票数 0
EN

Stack Overflow用户

发布于 2021-10-18 08:57:03

如果你在测试中遇到问题,只要使用org.springframework.mock.web.MockMultipartFile就行了,你可以在构造器中将contentType设置为参数之一。

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

https://stackoverflow.com/questions/56711087

复制
相关文章

相似问题

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