我很抱歉我的英语:(不好
我想使用 Feign 客户端上传图像文件,但服务器应用程序上的图像已损坏。
// CLIENT APP
@FeignClient(name = "media-client", url = "${api.base-path}/media")
public interface MediaClient {
@PostMapping
String uploadMedia(@RequestPart("file") MultipartFile file);
}
// SERVER APP
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String uploadMedia(@RequestPart MultipartFile file) throws IOException {
Files.copy(file.getInputStream(), Paths.get("/home/m/Desktop").resolve(UUID.randomUUID().toString() + ".jpg"));
return null;
}
与客户端应用程序和服务器应用程序保存的图像相同。但结果如下:
https://i.stack.imgur.com/xbiPS.png
怎么了?请帮助我。
我建议将Feign编码器用于多部分/表单数据表单。 步骤:
首先,将此依赖项包含在项目的 pom.xml 文件中:
<dependency>
<groupId>io.github.openfeign.form</groupId>
<artifactId>feign-form</artifactId>
<version>2.2.1</version>
</dependency>
然后,添加此配置:
@Configuration
public class FeignClientConfiguration {
@Bean
@Primary
@Scope("prototype")
public Encoder encoder() {
return new SpringFormEncoder();
}
}
并更改注释:
@FeignClient(name = "media-client", url = "${api.base-path}/media", configuration = FeignClientConfiguration.class)