JAVA 表单带图片提交 sql事物异常回滚后如何删除已上传的图片

表单带图片提交上来,先保存图片,图片保存完之后把路径存到数据库得到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);
}

发生事物异常时可以手动指定异常处理类,我可以重写一个异常处理类,传文件上传后的一些路径信息过去再把这个文件删除吗?


慕斯王
浏览 834回答 1
1回答

红颜莎娜

可以考虑不用用form提交图片,用上传组件先上传图片到专门的附件表,返回id,表单带着附件id提交后台,回滚时候,根据附件id找到图片路径删除图片,删除附件表记录
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java