需求:將文件上傳到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