环境:java,springmvc,ckeditor,tomcat,maven
情况:在做项目的时候发现本地图片粘贴到ckeditor中,img标签的src中的值是“data:image/png;base64,”开头的,后面会跟一串字符串,图片越大字符串越长,这样的图片在保存的时候一旦放多了过后,后台不知什么原因拿不到其它的参数,所以想把这种图片上传到后台在显示出来。研究了一天的发觉还是挺简单的,主要是ckeditor怎么获取img并获取src 。下面看一下代码。
流程:监听change事件-》获取图片的二进制数据,将base64图片转换成formData再提交到服务器-》服务器接收上传的文件,生成图片到指定位置,并返回图片的访问地址-》js接收回调数据,获得图片url-》将获得的url地址替换掉图片的二进制数据
1,定义一个textarea
${article.content}
2,js方法
//粘贴图片上传
//延时加载uploadImage方法,否则被默认方法覆盖
$(function(){setTimeout(uplaodImage,400);});
//使用FormData形式,将base64图片转换成formData再提交(图片不限制大小)
function uplaodImage(){
CKEDITOR.instances.content.on('change',function(e){//content为textarea的id
var a = e.editor.document ;
var b = a.find("img");