文件批量上传三步区: 第一步建Controller: @RestController @Api(tags = {"admin文件上传操作"}) @RequestMapping(value = "/api/fileUpload") public class FileUploadController { @Autowired private FileUploadService fileUploadService;
/** * 上传图片 * @author shuaifa * @param files * @return * @date 2023/7/13 09:58 */ @ApiOperation(value = "批量上传图片") @PostMapping(value = "uploadImg") public AppResponse<String> uploadImg(@RequestParam("files") @NonNull MultipartFile[] files) { return fileUploadService.uploadImg(files); } }
第二步建Service: public interface FileUploadService { AppResponse<String> uploadImg(MultipartFile[] files); }
第三步建ServiceImpl:
@Service @Slf4j public class FileUploadServiceImpl implements FileUploadService { @Override public AppResponse<String> uploadImg(MultipartFile[] files) { if (files == null || files.length <= 0) { return AppResponse.fail("文件不能为空!"); } //磁盘文件目录 //String FILEPATH = baseFilePath; String FILEPATH = "D:\srv\files\"; Map<String, Object> mapAll = new HashMap<String, Object>(); try { List<String> pathList = new ArrayList<String>(); // 循环获取file数组中得文件 for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; String fileName = file.getOriginalFilename(); String filePath = FILEPATH + fileName; File saveDir = new File(filePath); // 判断文件夹是否存在,不存在则创建 if (!saveDir.getParentFile().exists()) { saveDir.getParentFile().mkdirs(); } // 转存文件 file.transferTo(saveDir); pathList.add( filePath); } mapAll.put("path", pathList); } catch (Exception e) { e.printStackTrace(); return AppResponse.fail("文件上传失败!"); } String jsonString = JSON.toJSONString(mapAll.get("path")).replace("[","{").replace("]","}"); return AppResponse.rest(200,"文件上传成功!",jsonString); } }
完成!