富文本编辑器的组件有很多像:百度的UEditor ,Vue-Quill-Editor,以及wangeditor。
组件的选择根据自己业务需求选择,本文选用的是wangeditor。
首先说一下业务需求:
表单里加富文本,要求能够加载图片,文字进行保存,编辑时能够从数据库读取数据进行回显。
主要问题:
1.图片上传
wangeditor可以取到文本域中的html代码,准备以字符串形式存入数据库。
但对图图片处理默认为base64格式文件,数据库直接保存文本域中的heml字符串太长,很难保存。所以图片进入文本域中先上传到服务器中返回文件地址放回文本域中。幸运的是,wangeditor支持这种文件上传配置如下:具体可看官方api
var editor = new window.wangEditor(’#div1’)
// 配置服务器端地址
editor.customConfig.uploadImgServer = ‘/upload’
注意:返回数据必须为数组形式,否则组件回报错误取不到返回数据
wangeditor可以支持自定义上传设置,配置如下:
组件图片上传回调方法
editor.customConfig.customUploadImg =function(files, insert){
//回显插入方法
insert(html)
}
editor.customConfig.customUploadImg = async function (files, insert) {
let form = new FormData()
for (let i = 0; i < files.length; i++) {
form.append('file', files[i])
}
form.append('token', getToken())
form.append('x-uid', this.$store.getters.user