问题描述
- 在做一个文件上传功能的时候,我获取到类路径:
String classPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
- 此方法获取到的路径是:
/target/classes
- 我将文件存储到
/target/classes/template/
中
此时发现只要一上传文件,项目就进行自动重启,问了一些大佬,还以为是框架中有什么安全检查呢
后来我发现是热部署的问题
代码如下:
@PostMapping("/uploadFile")@ApiOperation("上传")public ResultBody uploadFile(@RequestParam("file") MultipartFile file,@RequestParam String id) throws IOException {String classPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();//ApplicationHome h = new ApplicationHome(getClass());//String classPath = h.getSource().getParentFile().getAbsolutePath();String filePath = classPath + "/template/" + file.getOriginalFilename();File dest = new File(filePath);if (!dest.getParentFile().exists())dest.getParentFile().mkdirs();MonthlyImportDemand demand = monthlyImportDemandService.getById(id);demand.setFilePath(dest.getAbsolutePath());monthlyImportDemandService.updateById(demand);FileUtil.writeBytes(file.getBytes(), dest);return ResultBody.success();}
获取绝对路径可以使用两种方法:
String classPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
ApplicationHome h = new ApplicationHome(getClass());
File file = h.getSource()
我将上传的文件保存至target/template
中,问题解决