1

我很抱歉我的英语不好:(

我想用 Feign Client 上传图片文件,但是图片在服务器应用程序上损坏了。

// 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

怎么了?请帮我。

4

1 回答 1

0

我建议对多部分/表单数据表单使用 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)
于 2017-08-21T16:03:55.857 回答