Skip to content

SpringCloud OpenFeign 上传文件

Feign配置Bean

java
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;

@Bean
public Encoder feignFormEncoder() {
    return new SpringFormEncoder(new SpringEncoder(messageConverters));
}

FeignClient接口定义

java
// 上传临时素材
@PostMapping(value = "/cgi-bin/media/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
JSONObject media_upload(@RequestParam(value = "access_token", required = false) String access_token,
                        @RequestParam(value = "type", required = false) String type,
                        @RequestParam(value = "debug", required = false) String debug,
                        @RequestPart("media") MultipartFile file);

调用示例

java

JSONObject jsonObject = qyWxClient.media_upload(null, "file", "1", 
                    new MockMultipartFile(
                        "media",
                        file.getName(),
                        "application/octet-stream",
                        fileInputStream
                    ));
/src/technology/dateblog/2025/04/20250409-springcloud-openfeign-%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6.html