1、spring boot多文件传输与bean一起传输使用@RequestPart可以看一下 这位老哥的方法很优雅
(1)spring 部分代码是直接搬的
@PostMapping("upload")
public ImageInfo upload(@RequestPart("file") MultipartFile file,@RequestPart("file1") MultipartFile file1,@RequestPart("imageInfo") ImageInfo imageInfo) {
System.out.println(imageInfo);
return imageInfo;
}
(2)添加config
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
@Configuration
public class Config {
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters(){
return new HttpMessageConverters(new FastJsonHttpMessageConverter());
}
}
2、OpenFeign传输文件
Feign默认不支持文件传输需要插件feign-form 在maven里面引一下(注意版本),主要有两种使用方法
一下是从官网搬运的,试过可用,可以直接去官网查看新的API文档 官网地址
(1)主动添加一个 @Headers("Content-Type: multipart/form-data")
interface SomeApi {
// File parameter
@RequestLine("POST /send_photo")
@Headers("Content-Type: multipart/form-data")
void sendPhoto (@Param("is_public") Boolean isPublic, @Param("photo") File photo);
}
(2)MultipartSupportConfig 此方法是从官网copy+改的,未测试
@FeignClient(
name = "file-upload-service",
configuration = FileUploadServiceClient.MultipartSupportConfig.class
)
public interface FileUploadServiceClient {
@PostMapping(value = "uploadImage", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
bean createUpdateImage(@RequestPart("images") MultipartFile images, @RequestParam(value="id") String id);
public class MultipartSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignFormEncoder () {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
}
}
本文介绍如何在SpringBoot中实现多文件与bean一起传输,并通过配置FastJsonHttpMessageConverter来优化消息转换。此外,还介绍了如何利用OpenFeign进行文件传输,包括使用feign-form插件和MultipartSupportConfig配置。

1438

被折叠的 条评论
为什么被折叠?



