Feign 調用文件服務上傳文件

feign文件上傳報錯FileUploadException: the request was rejected because no multipart boundary

feign-form和spring cloud版本不一致

 <dependency>
            <groupId>io.github.openfeign.form</groupId>
            <artifactId>feign-form</artifactId>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupId>io.github.openfeign.form</groupId>
            <artifactId>feign-form-spring</artifactId>
            <version>3.5.0</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
        
	 <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
	
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.7.RELEASE</version>

消費端

/**
     * 上傳圖片
     * @param file
     * @return
     */
    @RequestMapping(value = "/uploadFile",method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public String handleFileUpload(@RequestParam(value = "file") MultipartFile file) {
        return fileUploadFeignService.handleFileUpload(file);
    }

@FeignClient(name = "file",configuration = FeignSupportConfig.class)
public interface FileUploadFeignService {

    @RequestMapping(value = "/feign/file/upload",method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    String handleFileUpload(@RequestPart(value = "file") MultipartFile file);
}

@Configuration
public class FeignSupportConfig {
    @Autowired
    private ObjectFactory<HttpMessageConverters> messageConverters;
    
    @Bean
    public Encoder feignEncoder() {
        return new SpringFormEncoder(new SpringEncoder(messageConverters));
    }
}

服務提供者


    /**
     * 文件上傳
     * @throws IOException
     */
    @RequestMapping(value = "/upload",method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public String  upload(@RequestPart(value = "file")MultipartFile file) throws IOException {
        return fileService.upload(file);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章