在springcloud feign 这个问题上处理了很久,一直报 Content-Type “multipart/form-data” not set for request body of type CommonsMultipartFile 错误,需要有这个问题的可以一起来解决
一直报multipart/form-data
试了二种方法,一种是直接加属性 consumes = MediaType.MULTIPART_FORM_DATA_VALUE
produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}
@RestController
public class ExceleController {
// 这个你也可以试试 需要不需要. consumes = MediaType.MULTIPART_FORM_DATA_VALUE
@RequestMapping(value = "/updateExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void updateExcel(@RequestPart("file") MultipartFile file){
String fileName=file.getOriginalFilename();
System.out.println(fileName);
System.out.println("11111111111");
File newFile=new File("D:\\新建文件夹 (4)\\学习\\视频自学\\2\\222.txt");
第二种 是加一个配置文件
MultipartSupportConfig
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
@Configuration
public class MultipartSupportConfig {
// 支持多文件 Encoder 编码.表单的. 我是这样理解的.
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder();
}
}
feign 接口
@FeignClient(value = "eureka-client", configuration = MultipartSupportConfig.class)
public interface FeignService {
// 这儿 multipart/form-data contentType 这个东西 一模一样, 我理解的就是contentType
@RequestMapping(value = "/updateExcel", method=RequestMethod.POST,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
// @Headers({"Content-Type:multipart/form-data;chartset:UTF-8"})
public void updateeExcel(@RequestPart("file")MultipartFile file);
@RequestMapping("/getInfo")
被调用服务器接口
public class ExceleController {
// 这个你也可以试试 需要不需要. consumes = MediaType.MULTIPART_FORM_DATA_VALUE
@RequestMapping(value = "/updateExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void updateExcel(@RequestPart("file") MultipartFile file){
String fileName=file.getOriginalFilename();
System.out.println(fileName);
System.out.println("11111111111");
这样就可以上传了
希望大家和我的问题一样,都能很快解决