表单带图片提交上来,先保存图片,图片保存完之后把路径存到数据库得到id,再把id赋给表单对象实体;
如果在图片保存完之后,后面保存表单sql出现异常需要回滚,sql可以回滚,我想把之前上传的文件再给删除需要怎么样实现呢?
@Transactional(rollbackFor = Exception.class)
public int insert(Form form, MultipartFile file) throws IOException {
if (!file.isEmpty()) {
// 这里的操作会先把文件保存到磁盘,然后将路径信息保存到数据库,再返回路径信息
form.setImage(sysFileService.upLoad(file).getId());
}
return mapper.insert(form);
}
发生事物异常时可以手动指定异常处理类,我可以重写一个异常处理类,传文件上传后的一些路径信息过去再把这个文件删除吗?
可以考虑不用用
form
提交图片,用上传组件先上传图片到专门的附件表,返回id,表单带着附件id提交后台,回滚时候,根据附件id找到图片路径删除图片,删除附件表记录