<dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form</artifactId><version>3.8.0</version></dependency><dependency><groupId>io.github.openfeign.form</groupId><artifactId>feign-form-spring</artifactId><version>3.8.0</version></dependency>
importfeign.codec.Encoder;importfeign.form.spring.SpringFormEncoder;importorg.springframework.beans.factory.ObjectFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.autoconfigure.http.HttpMessageConverters;importorg.springframework.cloud.openfeign.support.SpringEncoder;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;@ConfigurationpublicclassFeignConfig{@AutowiredprivateObjectFactory<HttpMessageConverters> messageConverters;@BeanpublicEncoderfeignFormEncoder(){returnnewSpringFormEncoder(newSpringEncoder(messageConverters));}}
packagecom.nado.mallproductclient.feign;importcom.github.pagehelper.PageInfo;importcom.nado.mallframework.common.Const;importcom.nado.mallframework.common.ServerResponse;importcom.nado.mallframework.domain.Category;importcom.nado.mallframework.domain.Product;importcom.nado.mallproductclient.config.FeignConfig;importcom.nado.mallproductclient.feign.impl.ProductFeignImpl;importorg.springframework.cloud.openfeign.FeignClient;importorg.springframework.http.MediaType;importorg.springframework.stereotype.Component;importorg.springframework.web.bind.annotation.*;importorg.springframework.web.multipart.MultipartFile;@FeignClient(value="product-provider", configuration=FeignConfig.class, fallback=ProductFeignImpl.class)@ComponentpublicinterfaceProductFeign{@PostMapping(value="/product/upload",produces={MediaType.APPLICATION_JSON_UTF8_VALUE},consumes=MediaType.MULTIPART_FORM_DATA_VALUE)ServerResponseupload(@RequestPart("upload_file")MultipartFile file,@RequestParam("path")String path);}