layui富文本编辑器上传图片

layui是贤心大神的开源前端框架,也是对后端菜鸟非常友好的一个框架,平常开发的时候就比较喜欢使用这个,最近刚好写网站就到了layui的富文本编辑器,遇到一些有意思的事情,就和大家聊聊。
首先准备工作先到官网下载layui资源包
之后新建一个项目我平常使用springboot项目,如果不熟悉Springboot的请参考大佬教程,把下载好的资源包layui文件夹放到static下
在这里插入图片描述
配置一下端口,个人比较喜欢yml文件


server:
    port: 8784

之后我们可以在static下面新建一个html进行编辑,依照文档进行编写

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="layui/css/layui.css" />
</head>
<body>
<textarea id="demo" ></textarea>
<script type="text/javascript" src="layui/layui.all.js" charset="utf-8"></script>

<script>
layui.use('layedit', function(){
	 var layer = layui.layer, $= layui.jquery,layedit=layui.layedit;
	 var testEditor;
	layedit.set({
		  uploadImage: {
		    url: 'uploadconimage' //接口url
		    ,type: 'POST' //默认post
		  }
	 
		});
	layedit.build('demo', {
		height: 900,
		  tool: [ 'strong' //加粗
			  ,'italic' //斜体
			  ,'underline' //下划线
			  ,'del' //删除线
			  ,'|' //分割线
			  ,'left' //左对齐
			  ,'center' //居中对齐
			  ,'right' //右对齐
			  ,'link' //超链接
			  ,'unlink' //清除链接
			  ,'face' //表情
			  ,'image' //插入图片
			  ,'help' //帮助
			  ]
		}); 
});
</script>
 
 </body>
</html>

这样我们就可以运行项目了,效果是这样的
在这里插入图片描述
当我们点击图片上传图标的时候会报接口异常,这个时候我们就需要编写图片上传代码
我们先编写一个图片上传接口

@RequestMapping(value="/uploadconimage",method=RequestMethod.POST)
	@ResponseBody
	public Map<String,Object> uploadconimage(HttpServletRequest request,@RequestParam MultipartFile file) {
		Map<String,Object> mv=new HashMap<String, Object>();
		Map<String,String> mvv=new HashMap<String, String>();
		 try {
	            String rootPath = request.getSession().getServletContext().getRealPath("/image/");
	            Calendar date = Calendar.getInstance(); //Calendar.getInstance()是获取一个Calendar对象并可以进行时间的计算,时区的指定
	            String originalFile = file.getOriginalFilename(); //获得文件最初的路径
	            String uuid = UUID.randomUUID().toString();    //UUID转化为String对象  
	           	String newfilename=date.get(Calendar.YEAR)+""+(date.get(Calendar.MONTH)+1)+""+date.get(Calendar.DATE)+uuid.replace("-", "")+originalFile;
	            //得到完整路径名
	            File newFile = new File(rootPath+newfilename);
	            /*文件不存在就创建*/
	            if(!newFile.getParentFile().exists()){
	                newFile.getParentFile().mkdirs();
	            }
	            String filename=originalFile.substring(0, originalFile.indexOf("."));
	            System.out.println(originalFile);
	            System.out.println(filename);
	            file.transferTo(newFile);
	            System.out.println("newFile : "+newFile);
	            String urlpat= "/image/"+ newfilename;
	            mvv.put("src", urlpat);
	            mvv.put("title",newfilename);
	            mv.put("code", 0);
	    		mv.put("msg", "上传成功");
	    		mv.put("data", mvv);
	    		return mv;
	        } catch (Exception e) {
	           e.printStackTrace();
	        	 mv.put("success", 1);
	        		return mv;
	        }
	}

然后在html中国配置上传接口


 var testEditor;
	layedit.set({
		  uploadImage: {
		    url: 'uploadconimage' //接口url
		    ,type: 'POST' //默认post
		  }
	 
		});

这样就可以上传图片了
效果还不错
这样我们就完成了编辑器的部署工作,在这里我们需要注意一些问题不然很容易进坑,首先配置文件上传接口和类型的JS代码一定在 layedit.build之前,否则是配置不上的,还有就是接口返回的json一定要严格遵守文档的的格式规范和状态码。否则无法解析,同样的返回的内容也要符合规范。

{
	"msg": "上传成功",
	"code": 0,
	"data": {
		"src": "/image/20191123e4aeef42a3d847ee9663c4cea6f3c611036622be4ea41b7bdfcbac1096881e83.jpg",
		"title": "20191123e4aeef42a3d847ee9663c4cea6f3c611036622be4ea41b7bdfcbac1096881e83.jpg"
	}
}

作为一个有求知欲的程序员,我尝试过修改返回内容发现会出现一些错误,code改为1,编辑器提示上传成功,但是不会显示图片,如果 src 为空则会出现这种情况,title和msg为空则不影响显示。

Layui 是一个经典的前端UI框架,它提供了包括富文本编辑器在内的多种模块。Layui富文本编辑器可以增加表格插入功能,让用户在编辑器中方便地创建和管理表格。 在Layui富文本编辑器中增加表格功能,通常需要使用编辑器提供的API来实现。具体步骤如下: 1. 引入Layui富文本编辑器模块。在你的HTML页面中,通过`<script>`标签引入Layui的CSS文件和JavaScript文件,并初始化富文本编辑器。 2. 加载编辑器的默认配置,你可以根据自己的需求来修改这些配置。例如,如果你想要添加一个按钮来快速插入表格,你可能需要配置工具栏(toolbar)中包含表格插入的按钮。 3. 使用编辑器提供的API,如`layer.tabledrag`来添加表格拖拽排序的功能,或者使用`layer.load`来在插入表格时显示加载动画。 4. 调用编辑器的实例方法,如`edit.execCommand('inserttable', rows, cols)`,来在编辑器中插入指定行数和列数的表格。 下面是一个简单的代码示例,展示如何在Layui富文本编辑器中增加插入表格的功能: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui富文本编辑器增加表格功能</title> <link rel="stylesheet" href="path/to/layui/css/layui.css" media="all"> </head> <body> <div id="editor-container"></div> <script src="path/to/layui/layui.js"></script> <script> layui.use('layedit', function(){ var layedit = layui.layedit; // 初始化编辑器 layedit.use(['upload', 'table'], function(layedit, upload, table){ // 配置编辑器 layedit.full({ elem: '#editor-container', // 容器 toolbar: true, // 是否显示工具栏 upload: { // 上传图片配置 url: '/upload.php' // 服务器上传接口 }, table: { // 表格配置 width: '100%' // 表格宽度 }, done: function(bin, editor){ console.log(bin) }, error: function(err){ console.log(err) } }); }); }); </script> </body> </html> ``` 在这个示例中,`layedit.full`初始化了富文本编辑器,并且通过`toolbar: true`开启了工具栏,`table`属性设置了表格的一些基本配置。根据实际需求,你可以添加更多的配置项和工具栏按钮。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值