1 /*
2 白名单请求都直接放行:
3 */
4 List<String> urlList = new ArrayList<>(); 8 //对上传图片的url接口/product/img-upload的请求直接放行
9 urlList.add("/product/img-upload");
10 //对static下的/img/upload中的静态资源图片的访问直接放行
11 if(urlList.contains(path)||path.contains("/img/upload")){
12 chain.doFilter(request, response);
13 return;
14 }
1 /**
2 * 上传图片的url接口/product/img-upload
3 *
4 * 参数MultipartFile file对象封装了上传的图片;
5 *
6 * @CrossOrigin表示该url接口允许跨域请求;
7 */
8 @CrossOrigin
9 @PostMapping("/img-upload")
10 public Result uploadImage(MultipartFile file){
11
12 try {
13 //拿到图片上传到的目录(类路径classes下的static/img/upload)的File对象
14 File uploadDirFile = ResourceUtils.getFile(uploadPath);
15 //拿到图片上传到的目录的磁盘路径
16 String uploadDirPath = uploadDirFile.getAbsolutePath();
17 //拿到图片保存到的磁盘路径
18 String fileUploadPath = uploadDirPath + "\\" + file.getOriginalFilename();
19 //保存图片
20 file.transferTo(new File(fileUploadPath));
21 return Result.ok("图片上传成功!");
22 } catch (Exception e) {
23 return Result.err(Result.CODE_ERR_BUSINESS,"图片上传失败!");
24 }
25 }
1 #application.properties文件
2 # 图片上传位置
3 file.upload-path=classpath:static/img/upload
4 # 上传的图片保存数据库的访问路径
5 file.access-path=/img/upload/