quillEditor实现粘贴图片上传服务器,存储图片src非base64

若依框架中集成的quillEditor富文本编辑器,默认是支持粘贴图片的。可以截图上传非常方便。
但是有个弊端,就是截图上传的图片存储格式如下:
在这里插入图片描述
存储的是base64格式的图片
而通过点击上传图片按钮上传的图片存储格式是:
在这里插入图片描述
解决办法就是,给富文本编辑器加一个粘贴的监听事件。
判断如果粘贴图片了,把文件上传到后台服务器

在这里插入图片描述

<div class="editor" ref="editor" :style="styles" @paste="onPaste($event)"></div>

然后在methods里面写实现方法

/**监听富文本编辑器的粘贴事件  针对图片进行操作 */
     onPaste(evt) {
      // 获取解析 粘贴的内容
      //先判断粘贴的内容是否是图片
      if (
              evt.clipboardData &&
              evt.clipboardData.files &&
              evt.clipboardData.files.length
          ) {
              evt.preventDefault();
              [].forEach.call(evt.clipboardData.files, (file) => {
                  if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) {
                      return;
                  }
                  const formData = new FormData();
                  formData.append("file", file);
                  //带请求头过验证
                  const config = {
                    headers:{
                      "Authorization": "Bearer " + getToken()
                    }
                  };
                  this.$axios.post(`${process.env.VUE_APP_BASE_API}/common/upload`, formData,config).then(
                      res => {
                        console.log(res);
                          if (res.data.code == 200) {
                              console.log(res.data.fileName)
                              let length = this.Quill.getSelection().index; //光标位置
                              // 插入图片地址
                              this.Quill.insertEmbed(length, "image", res.data.url);
                              // 光标后移一位
                              this.Quill.setSelection(length + 1);
                          } else {
                              this.$message({
                                  message: res.data.message,
                                  type: 'warning'
                              });
                          }
                      })
              });
          }
    },
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
在使用`vue-quill-editor`进行图文粘贴时,复制的图片实际上以base64的形式进行上传。然而,将base64写进数据库并不是一个好的做法。因此,解决思路是将复制的图片上传服务器,然后将服务器返回的图片地址作为img标签插入到富文本编辑器中,这样就可以正确显示图片了。以下是一个解决思路的代码实例供参考: ```javascript mounted() { let quill = this.$refs.myQuillEditor.quill; quill.root.addEventListener("paste", (evt) => { if (evt.clipboardData && evt.clipboardData.files && evt.clipboardData.files.length) { evt.preventDefault(); [].forEach.call(evt.clipboardData.files, (file) => { if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) { return; } const formData = new FormData(); formData.append("pictureFile", file); makdwnImg(formData) .then((res) => { if (res.data.code == 200) { let quill = this.$refs.myQuillEditor.quill; let length = quill.getSelection().index; quill.insertEmbed(length, "image", res.data.data); quill.setSelection(length + 1); } }) .catch((err) => { console.error(err); }); }); } }, false); }, ``` 通过这段代码,你可以在`vue-quill-editor`中实现图文粘贴图片并正确显示图片。需要注意的是,你需要根据你自己的项目做一些适应性的调整。希望这能帮到你!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue-quill-editor粘贴图片,vue-quill-editor复制图片](https://blog.csdn.net/weixin_43131046/article/details/116490735)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

散装程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值