1。上传图片到自己的服务器(这个官方有例子,重点是上传附件)图片上传官网//onChangecallback$('#summernote').summernote({callbacks:{onChange:function(contents,$editable){console.log('onChange:',contents,$editable);}}});//summernote.change$('#summernote').on('summernote.change',function(we,contents,$editable){console.log('summernote\'scontentischanged.');})summernote是一个富文本编辑器,但是当他上传图片的时候,图片会以二进制的形式存储到数据库字段中,占用很大此时的资源,所以我们希望图片可以存储在我们自己的服务器中,在字段Storage中以链接地址的形式,这时候需要在上传图片的时候进行处理,所以在ImageUpload下回调处理图像文件。例子://初始化定义var_this=this;this.curEle=$('#'+this.id);varfileUploadBtn=this.template;this.curEle.summernote({focus:true,lang:'zh-CN',//配置中文说明placeholder:'请输入内容',fontNames:['宋体','微软雅黑','开体','黑体','隶书','Arial','ArialBlack','ComicSansMS','CourierNew','HelveticaNeue','Helvetica','Impact','LucidaGrande','Tahoma','TimesNewRoman','Verdana'],height:400,minHeight:300,maxHeight:null,工具栏:[['style',['style']],['font',['bold','italic','underline','clear']],['fontname',['fontname']],['color',['color']],['para',['ul','ol','段落','高度']],['表格',['表格']],['插入',['fileBtn','媒体','链接','图片','视频']],['view',['fullscreen']]],buttons:{fileBtn:fileUploadBtn},回调:{onImageUpload:function(files,editor,$editable){_this.sendFile(files[0]);},}})方法:{sendFile(文件){var_this=this;vardata=newFormData();data.append("文件",文件);$.ajax({data:data,type:"POST",url:SERVICE_URLS.commonUrl.uploadPic.path,//这里是图片上传服务器请求地址,返回的路径是上传的图片(例如:请求接口是http://120.96.35.20:8090/uploadPic)cache:false,contentType:false,processData:false,dataType:"json",success:function(data){//exampledata:{data:'http://www.test.com/a.jpg'}_this.curEle.summernote('insertImage',data.data);},error:function(){alert("上传失败");}});},template(context){//这里是自定义附件上传按钮,如果只考虑图片上传请忽略let_this=this;varui=$.summernote.ui;//创建按钮varbutton=ui.button({contents:'attachment',tooltip:'fileupload',click:function(){_this.visibleUpload=true;//控制上传文件的可见性interfaceboxsetTimeout(function(){_this.initUploader();//初始化网络上传插件},0)}});返回button.render();//将按钮作为jquery对象返回}}2.自定义按钮以创建附件并将其上传到您自己的服务器。首先介绍github上已有的附件插件uploadcare-summernotegithub链接地址。这是Summernote所见即所得编辑器的Uploadcare插件。它允许您的用户从本地设备、社交网络、云存储上传文件和图像,而无需处理上传所需的任何后端代码。这句话的意思是你上传的文件没有存放在你自己的服务器上。当然,插件提供了自定义存储,有兴趣的可以自行尝试。综合考虑插件的方法有点繁琐和不安全,还不如自己写一个附件上传按钮。示例如下(1)为附件上传按钮创建自己的自定义按钮,如上述模板函数所示:(2)上传附件,这里使用百度的webuploader插件,具体代码不再赘述(见webuploaderAPI)(3)根据返回的数据,动态创建一个DOM,插入到summerNote编辑器中。这里重点说下思路:1.使用插件将本地文件上传到我们的服务器2.当上传完成(uploadFinished)后,我们可以根据成功返回的数据动态创建DOM对象。3、将创建的DOM对象插入到编辑器中(注意:这里没有使用insertNode方法,因为会额外添加一个
