wangEditor富文本编辑器的使用

977 阅读2分钟

在官网下载 wangEditor.min.js,在页面引入

<body>
   <div id="editor"></div><br />
</body>
<script>
    var E = window.wangEditor
	var editor = new E('#editor')
	// 隐藏“网络图片”tab
	editor.customConfig.showLinkImg = false;
	// 关闭粘贴内容中的样式
	editor.customConfig.pasteFilterStyle = false;
	// 忽略粘贴内容中的图片
	editor.customConfig.pasteIgnoreImg = false;
	//上传图片时,可自定义filename(controller层需要设置传入的名字时保持一致)
	editor.customConfig.uploadFileName = 'myFile';
	// 配置服务器端地址 upload:上传图片地址(调用controller层接口)
	 editor.customConfig.uploadImgServer= app.serverUrl + 'tbArticle/uploadImg';
	// 将图片大小限制为 3M
	//editor.customConfig.uploadImgMaxSize = 3 * 1024 * 1024;
	 
	editor.customConfig.uploadImgHooks = {
		before: function (xhr, editor, files) {
		        // 图片上传之前触发
		        // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,files 是选择的图片文件
		        
		        // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传
		        // return {
		        //     prevent: true,
		        //     msg: '放弃上传'
		        // }
		    },
		    success: function (xhr, editor, result) {
		        // 图片上传并返回结果,图片插入成功之后触发
		        // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果
		    },
		    fail: function (xhr, editor, result) {
				console.log("fail = "+xhr);
		        // 图片上传并返回结果,但图片插入错误时触发
		        // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象,result 是服务器端返回的结果
		    },
		    error: function (xhr, editor) {
				console.log("error = "+xhr);
		        // 图片上传出错时触发
		        // xhr 是 XMLHttpRequst 对象,editor 是编辑器对象
		    },
		    timeout: function (xhr, editor) {
		        console.log("timeout = "+xhr);
		    },
	
		customInsert: function (insertImg, result, editor) {
		    //这个是用来回显的
		    // 图片上传并返回结果,自定义插入图片的事件(而不是编辑器自动插入图片!!!)
		    // insertImg 是插入图片的函数,editor 是编辑器对象,result 是服务器端返回的结果
		    // 举例:假如上传图片成功后,服务器端返回的是 {url:'....'} 这种格式,即可这样插入图片:
		    //data是我后台返回的图片调用地址:url
		    insertImg(result.msg);
		    // result 必须是一个 JSON 格式字符串!!!否则报错
		}
	}
	editor.create();
    //用来修改富文本编辑器的高度
	let eds = document.getElementsByClassName('w-e-text-container');
	eds[0].style = eds[0].style.cssText + 'height: 600px';
</scritp>


看下后端的接口
@PostMapping("/uploadImg")
@ResponseBody
public R uploadImg(@RequestParam("myFile") MultipartFile file,HttpServletRequest request) {
	UUID uuid = null;
	String newFileName = null;
	if (!file.isEmpty()) {
         try {
        	 String[] splits = file.getOriginalFilename().split("\\.");
        	 uuid = UUID.randomUUID();
        	 newFileName= uuid +"."+ splits[splits.length - 1];
             //File saveDir = new File("F:\\tomcat-7\\apache-tomcat-7.0.96\\webapps\\whlhs\\img\\"+uuid+".png");
        	 File saveDir = new File("/home/ssd/tomcat/www/webapps/whlhs/img/" + newFileName );
        	 if (!saveDir.getParentFile().exists())
                 saveDir.getParentFile().mkdirs();
             file.transferTo(saveDir); 
         } catch (Exception e) {
         	return R.error();
         }
	 }
    //这个返回的路径很重要,页面要根据这个路径去访问这张图片 
	return R.ok("http://localhost:8081/whlhs/img/"+newFileName);
}