博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue-quill-editor上传内容由于图片是base64的导致字符太长的问题解决
阅读量:5108 次
发布时间:2019-06-13

本文共 2344 字,大约阅读时间需要 7 分钟。

vue-quill-editor是个较为轻量级富文本框,相较于ueditor,开发更编辑,更加直观,如果大家伙在需求允许的情况下,还是会比较建议使用vue-quill-editor

vue-quill-editor的使用方法在这边就不多说了,大家网上查下,一抓一大把

但是在使用vue-quill-editor有一个致命的问题,vue-quill-editor默认插入图片是直接将图片转为base64再放入内容中,如果图片比较大的话,富文本的内容就会很大,即使图片不大,只要图片较为多,篇幅较长,富文本的内容也是异常的大的,

这就会给大家带来一些烦恼,我们可能更希望在提交富文本的内容的时候图片只是以图片地址提交,那这样一来我们要怎么去处理呢,接下来大家可以来理一理

还是老思路,既然我们可以希望不是直接将图片转成base64,那么我们可以采用选择完图片,即将图片上传服务器,服务器返回相应的图片链接,前端将图片链接插入到富文本的指定光标上即可,这样一来就可以实现我们的想要的效果了

首先,新建富文本组件QuillEditor.vue,利用iview的上传组件来上传选择完的图片(当然,其他的上传组件也是ok的)

1     
18
19
25
26

看到上面的代码有的的就会有疑问了,那上传好的图片要怎么插到富文本的指定光标里面呢,别慌,面包会有的,往下看,

1     handleSingleSuccess (res, file) { 2       // res为图片服务器返回的数据 3       // 获取富文本组件实例 4       let vm = this 5       let quill = this.$refs.myQuillEditor.quill 6       console.log('res---', vm.$refs.myQuillEditor.quill.getSelection()) 7       // 如果上传成功 8       if (res.res_code === '1') { 9           // 获取光标所在位置10           let length = quill.getSelection().index;11           // 插入图片  res.info为服务器返回的图片地址12           quill.insertEmbed(length, 'image', res.result.url)13           // 调整光标到最后14           quill.setSelection(length + 1)15       } else {16           vm.$Message.error('图片插入失败')17       }18       // loading动画消失19       this.quillUpdateImg = false20     }

通过 this.$refs.myQuillEditor.quill.getSelection().index获取光标所在位置,将图片地址放在该位置即可

这样一来万事俱备,只欠东风了,这个时候大家会发现,那iview这个上传组件在页面上呢,我怎么实现点击富文本上的上传图片的按钮调用iview的上传组件的方法呢,

这个时候我们就要用到富文本中的配置属性editorOption,对editorOption进行图片上传的点击事件进行相应的配置即可,详情看下面代码

editorOption: { // 富文本框配置          placeholder: '',          theme: 'snow',  // or 'bubble'          modules: {              toolbar: {                  container: toolbarOptions,  // 工具栏                  handlers: {                      'image': function (value) {

 

if (value) {                              document.querySelector('#iviewUp input').click()                          } else {                              this.quill.format('image', false);                          }                      }                  }              }          }      }
document.querySelector('#iviewUp input') 这个就是相应的dom节点的点击事件,将其绑在富文本的图片按钮点击事件上 好了,基本上大功告成。还是算比较简单的,希望可以供大家参考

 

 

 

转载于:https://www.cnblogs.com/jsonYoung/p/9504084.html

你可能感兴趣的文章
正确删除k8s版本jenkins的pod
查看>>
CopyOnWriteArrayList源码add加锁的意义
查看>>
NOIP 数字游戏
查看>>
Matconvnet工具箱在Matlab中的安装
查看>>
[CATARC_2017] 第五周
查看>>
sublime常用快捷键
查看>>
POJ 2388&&2299
查看>>
Fiddler 教程
查看>>
18-----BBS论坛
查看>>
HDU 1829 A Bug's Life(种类并查集)
查看>>
PAT甲级题解-1097. Deduplication on a Linked List (25)-链表的删除操作
查看>>
js关闭窗口兼容firefox、chrome、ie
查看>>
【bug】—— IE8 ajax 报错:no transport
查看>>
第二阶段个人总结03
查看>>
【练习】HTML+CSS
查看>>
运算符的一些运用规则
查看>>
linux php全能环境一键安装,小白福利!
查看>>
文件的读写过程open read write close
查看>>
Struts2增删改查的例子
查看>>
【C++】不同含义new和delete
查看>>