SpringBoot项目使用summernote富文本编辑器时加入图片下载到了本地,但是移除图片的时候并没有把本地图片删除,这样也太不友好了!
于是就找了各种移除图片(summernote删除图片)的方法
操作步骤1.在summernote.js 中callbacks加入onMediaDelete:null
2.在前端定义富文本框参数callbacks定义onMediaDelete,注意:是在callbacks: {}添加onMediaDelete
onMediaDelete : function(target) {
console.log("------------>")
deleteFile(target);
}
//定义deleteFile()
function deleteFile(target){
var deleteImg = target[0].currentSrc;
var data = new FormData();
data.append("deleteImg", deleteImg);
$.ajax({
data: data,
type: "POST",
url: ctx + "common/removeFile", //执行请求
cache: false,
contentType: false,
processData: false,
success: function (data) {
console.log(data);
},
error: function(error) {
$.modal.alertWarning("图片删除失败。");
}
});
}
3.Controller 接收图片路径删除图片,删除文件工具类FileUtils就不贴出来了
@PostMapping("/common/removeFile")
@ResponseBody
public AjaxResult removeFile(@RequestParam("deleteImg")String filePath) throws Exception
{
try
{
boolean b = FileUtils.deleteFile(filePath);
AjaxResult ajax = AjaxResult.success();
ajax.put("filePath", filePath);
ajax.put("stutas", b);
return ajax;
}
catch (Exception e)
{
return AjaxResult.error(e.getMessage());
}
}
遇到的问题(注意)
首先我参考了一篇博客获取的图片路径是这样的:
var imgSrc = target.context.currentSrc;
但是这样获取不到图片路径并且报错,还以为没有执行删除的方法,找了半天的解决方法,最后查看控制台才发现是报错…
具体我也不懂为什么,使用上面的target[0].currentSrc获取表示当前对象img标签,currentSrc是获取img的src属性值,希望不要踩坑!



