// 获取文件类型,大小
String originalFilename = file.getOriginalFilename();
String type = FileUtil.extName(originalFilename);
long size = file.getSize();
// 给文件一个唯一标识码
String uuid = IdUtil.fastSimpleUUID();
String fileUUID = uuid + "." + type;
// 设置文件保存路径
File uploadFile = new File(fileUploadPath + fileUUID);
File parentFile = uploadFile.getParentFile();
if (!parentFile.exists()) {
parentFile.mkdir();
}
String url;
// 获取文件的md5
String md5 = SecureUtil.md5(file.getInputStream());
LambdaQueryWrapper<Files> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Files::getMd5, md5);
List<Files> filesList = filesMapper.selectList(wrapper);
if(filesList.size() > 0){
Files files = filesList.get(0);
url = files.getUrl();
}
else{
file.transferTo(uploadFile);
url = "http://localhost:8080/files/" + fileUUID;
}
Files saveFiles = new Files();
saveFiles.setName(originalFilename);
saveFiles.setType(type);
saveFiles.setSize(size / 1024);
saveFiles.setUrl(url);
saveFiles.setMd5(md5);
filesMapper.insert(saveFiles);
return url;
SpringBoot文件上传
最新推荐文章于 2024-02-23 23:09:34 发布
该代码段处理文件上传,首先获取文件的原始名称、类型和大小,然后生成唯一标识码并创建保存路径。如果文件MD5已存在,则从数据库获取URL,否则保存文件到服务器并生成新的URL。最后,将文件信息存入数据库并返回URL。
705

被折叠的 条评论
为什么被折叠?



