vue-quill-editor 图片上传处理

在使用vue-quill-editor时,由于将图片转为base64编码可能导致提交失败。解决办法是动态上传图片到服务器,仅保存图片URL在富文本中。通过在组件内集成upload组件,设置上传接口地址,监听富文本编辑器的图片上传按钮,成功后将图片加载到编辑器。此方法有效避免了因base64编码过长导致的问题。
摘要由CSDN通过智能技术生成

vue-quill-editor 上传图片是将图片转为base64编码,当图片比较大时,提交到后台时参数过长会导致提交失败。如下图:
在这里插入图片描述

解决方法:

把富文本内的图片动态上传到服务器,然后把图片加载到富文本编辑器。这样一来,图片标签内只需要存储图片的网络地址就可以了。

具体实现:

(1)组件内调用element的upload组件和vue-quill-editor编辑器;

<template>
  <div class="quill-editor">
    <!-- 图片上传组件辅助,组件内添加v-show=false”属性,把该组件隐藏起来。-->
    <el-upload class="avatar-uploader" :action="uploadUrl" name="img" :show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload">
    </el-upload>
    <!--富文本编辑器组件-->
    <quill-editor v-model="content" :content="content" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)" @ready="onEditorReady($event)" ref="QuillEditor">
    </quill-editor>
    <div v-html="content" />
  </div>
</template>

(2)在data函数内,设置upoad组件的图片上传接口地址;处理函数中匹配 image,定义富文本编辑器内的图片上传按钮点击事件,当点击上传图片图标时,触发 upoad 组件的图片上传事件;

 handlers: {
   
              image: function (value) {
   
                if (value) {
   
                  // 调用element的图片上传组件
                  document.querySelector('.avatar-uploader input').click()
                } else {
   
                  this.quill.format('image', false)
                }
              }
}

(3)methods中,完善 upload图片上传成功事件。图片上传成功后,把图片加载到富文本编辑器内。

  • 12
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
使用vue-quill-editor进行图片上传的方法有多种。一种解决方法是自定义图片上传组件。具体步骤如下: 1. 首先,在vue-quill-editor组件中添加el-upload组件作为图片上传组件。el-upload组件可以隐藏,并且可以通过点击vue-quill-editor中的图片按钮来触发它的点击事件。上传成功后,获取图片地址,并将其插入到光标位置。 2. 在vue-quill-editor组件的下方添加如下代码,用来定义el-upload组件的配置。其中,drag属性表示可以拖拽上传,multiple属性表示可以上传多个文件,headers属性用来设置请求头部,:on-success属性用来设置上传成功后的回调函数,action属性用来设置上传的地址。 3. 在vue-quill-editor组件的data中加入editorOption配置,用来重写点击组件上的图片按钮所执行的代码。具体来说,在toolbar.handlers中重写image方法,使其在点击时触发el-upload组件的点击事件,从而打开文件选择框。 通过以上步骤,你可以实现在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 使用-图片上传](https://blog.csdn.net/mynewdays/article/details/105726120)[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_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值