feign跨服务上传文件怎么处理?

feign跨服务上传文件,网上现在的方法全都试过了。报Required request part 'file' is not present。

题主把相关代码贴一下,大家帮你看看

网上的方案都试了,而且你啥代码异常也不贴出来,所以没办法解决。如果文件不大的话,转 base64 吧,传字符串吧。

检查org.springframework.web.multipart.MultipartFile#getName,传入和接收的name是否一致

文件使用MultipartFile ,加注解@RequestPart ,使用post,亲测有效

@FeignClient(value = FeignConstant.PLATFORM_CLOUD_UPMS,configuration = FeignConfiguration.class)
public interface IUploadFileProvider {

    @PostMapping(value = "/uploadTest")
    Result uploadTest(@RequestPart("file")MultipartFile file);
}


@Configuration
public class FeignConfiguration {

    @Bean
    @Primary
    @Scope("prototype")
    public Encoder multipartFormEncoder(ObjectFactory<HttpMessageConverters> messageConverters) {
        return new FeignSpringFormEncoder(new SpringEncoder(messageConverters));
    }
}

//服务端实现类
@RestController
@Api(value = "文件上传", tags = "文件上传")
public class UploadFileApi {

    @PostMapping("/uploadTest")
    public Result uploadTest(@RequestPart("file") MultipartFile file) {
        System.out.println(file.getContentType());
        return Result.ok();
    }
}

//客户端调用
public class UploadFileApi {
    @Resource
    private IUploadFileProvider uploadFileProvider;

    @PostMapping(value = "/uploadFile")
    public Result uploadTest(@RequestPart("file")MultipartFile file) {
        return uploadFileProvider.uploadTest(file);
    }
}