1、在application.yml中进行配置
2、controller编写代码
@RestController @RequestMapping("/upload") public class Web { @Value("${file.upload.path}") private String uploadPath; //单文件上传 @PostMapping("/image") public String upload(@RequestParam MultipartFile file, HttpServletRequest request) { if (!file.isEmpty()) { // String uploadPath = "D:\\springboot+shiro"; // 如果目录不存在则创建 File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } String OriginalFilename = file.getOriginalFilename();//获取原文件名 String suffixName = OriginalFilename.substring(OriginalFilename.lastIndexOf("."));//获取文件后缀名 //重新随机生成名字 String filename = UUID.randomUUID().toString() + suffixName; File localFile = new File(uploadPath + "\\" + filename); try { file.transferTo(localFile); //把上传的文件保存至本地 System.out.println(UUID.randomUUID().toString()); /** * 这里应该把filename保存到数据库,供前端访问时使用 */ return filename;//上传成功,返回保存的文件地址 } catch (IOException e) { e.printStackTrace(); System.out.println("上传失败"); return ""; } } else { System.out.println("文件为空"); return ""; } } //多文件上传 @PostMapping("/images") public String uploadFiles(MultipartFile[] file,HttpServletRequest request) { try { //创建文件在服务器端存放路径 String dir = "D:\\springboot+shiro"; File fileDir = new File(dir); if (!fileDir.exists()) { fileDir.mkdirs(); } //生成文件在服务器端存放的名字 for (int i = 0; i < file.length; i++) { String fileSuffix = file[i].getOriginalFilename().substring(file[i].getOriginalFilename().lastIndexOf(".")); String fileName = UUID.randomUUID().toString() + fileSuffix; File files = new File(fileDir + "/" + fileName); //上传 file[i].transferTo(files); } } catch (Exception e) { e.printStackTrace(); return "上传失败"; } return "上传成功"; } }
3、postman进行测试