@RequestMapping接收文件格式的形参(方法参数)
需求:将文件上传到OSS,忽略域名与路径,将文件名以 “img1.png,img2.png,img3.png”
保存到数据库中
1、先看结果
后端要接收postman传递的file文件
2、SpringBoot接收参数方式
很显然,上面postman上传的地方可以传入多个文件,所以我们可以用List<MultipartFile>
接收文件
// 图片文件
private List<MultipartFile> imageLst;
3、代码逻辑
@PostMapping(value = "/uploadImageList", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ApiOperation("批量上传封面图")
public R uploadImageList(@ModelAttribute UploadImageListInput input) {
····
}
重点:
1、这里要用@ModelAttribute
而不是@RequestBody
2、为了接收date,要在 postmapping注解中中加入consumes = MediaType.MULTIPART_FORM_DATA_VALUE
3、获取上传文件的后缀名:
public static final String getExtension(MultipartFile file) {String extension = FilenameUtils.getExtension(file.getOriginalFilename());if (StringUtils.isEmpty(extension)) {extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));}return extension;
}
4、番外篇:格式化字符串
整理存入数据库的格式:字符串+“,”+字符串
public static void main(String[] args) {List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5);// 在每个数字后面加","但能保证最后一个数字后面不加","String join = String.join(",", integerList.stream().map(String::valueOf).collect(Collectors.toList()));System.out.println(join);
}
输出
1,2,3,4,5