//富文本监听事件 页面js监听富文本copy事件,正则表达式解析img标签获取图片路径
var imgReg = " /<img.*?(?:>|\\/>)/gi";
var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
var reg = "[a-zA-z]+://[^\s]*";
// arr 为包含所有img标签的数组
$('#content_sn').summernote({
callbacks: {
onPaste: function (e) {
console.log(e)
setTimeout(function () {
var str = $("#content_sn").summernote('code');
//匹配图片(g表示匹配所有结果i表示区分大小写)
var imgReg = /<img.*?(?:>|\/>)/gi;
//匹配src属性
var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
var arr = str.match(imgReg);
//alert('所有已成功匹配图片的数组:'+arr);
for (var i = 0; i < arr.length; i++) {
var src = arr[i].match(srcReg);
//当然你也可以替换src属性
if (src) {
// var imgpath = encodeURI(src[1]);
// alert(imgpath);
$.ajax({
url : '/cms/file/pathupload',
type : 'POST',
data : {"imgpath":src[1]},
async : false,
success : function(data) {
str = str.replace(src[0], 'src="'+data.data+'"');
if(data.code == 0){
//$("#img").val(data.data);
}else{
alert("失败");
}
}
});
// updateimage(src[0],function(data){
// console.log(data);
// });
//alert(str.replace(src[0],(i + 1)+ "href")+"-------")
}
}
$("#content_sn").summernote('code',str);
},1000);
}
}
});
后台获取图片绝对路径,上传文件,返回上传文件的路径用户前台替换
public String saveImgPath(String path) throws Exception {
//String path = "C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps21D3.tmp.jpg";
String pathName="";
String pathName_="";
try{
path = path.replace("file:///",""); //去掉file前缀
pathName_ = "/image/" + Instant.now().getEpochSecond() + "/" +
UUIDUtil.uuid() + "." +
StringUtils.substringAfterLast(path+"", ".");
pathName = filePath + pathName_;
File newFile = new File(pathName);
if (!newFile.exists()) {
newFile.getParentFile().mkdirs();
//newFile.createNewFile();
}
//读取文件(字节流)
InputStream in = new FileInputStream(path);
//写入相应的文件
OutputStream out = new FileOutputStream(pathName);
//读取数据
//一次性取多少字节
byte[] bytes = new byte[2048];
//接受读取的内容(n就代表的相关数据,只不过是数字的形式)
int n = -1;
//循环取出数据
while ((n = in.read(bytes,0,bytes.length)) != -1) {
//转换成字符串
//String str = new String(bytes,0,n,"UTF-8");//这里可以实现字节到字符串的转换,比较实用
// System.out.println(str);
//写入相关文件
out.write(bytes, 0, n);
}
//关闭流
in.close();
out.close();
}catch (Exception e){
e.printStackTrace();
throw new Exception("上传失败");
}
return "/images" + pathName_;
}