vue-quill-editor 插入图片自定义

本文介绍了如何解决vue-quill-editor在处理大图或大量图片时出现的问题,通过自定义图片上传方式来优化。思路是编写上传图片功能,当在富文本编辑器中插入图片时,触发自定义上传,成功后利用quill.insertEmbed方法插入图片地址。具体实现包括七牛云的图片上传和编辑器选项设置。
摘要由CSDN通过智能技术生成

vue-quill-editor这个富文本编辑器它上传图片的方式是直接将图片转成base64编码,在需要上传大图或者要上传很多张图片的时候,就会出现问题。要解决这个问题从别的博主那里观察到要么换一个富文本编辑器、要么就自己修改一下该富文本编辑器的上传图片的方式。因为这问题是用完之后代码迭代的时候才出现的,所以我采取的是第二种方法。

说一下我的思路,首先我们要先写一个上传图片的功能,因为我们的思路是在使用富文本编辑器的插入图片时,就触发自己写的上传图片的功能去上传图片。等图片上传成功之后再去获取到富文本编辑框的光标所在位置使用quill.insertEmbed(‘光标位置’, 'image', ‘图片地址’)方法去把刚刚上传的图片给他用‘<img/>’标签给他代替掉就OK了。如果不知道这是个啥方法的同学请自行去百度(姨母式微笑)。

1、页面(我用的是七牛云)

<quill-editor ref="myQuillEditor" :disabled='searchOff' v-model="butlerform.articleContent" :options="editorOption" style="height:400px;" @blur="onEditorBlur($event)" @change="onEditorChange($event)">
</quill-editor>
<el-upload class="avatar-uploader" id
对于vue-quill-editor自定义上传图片,你可以按照以下步骤进行操作: 1. 首先,你需要在你的Vue项目中安装vue-quill-editor依赖包。可以使用npm或者yarn命令来安装: ```bash npm install vue-quill-editor # 或者 yarn add vue-quill-editor ``` 2. 在你需要使用vue-quill-editor的组件中引入依赖: ```vue <template> <div> <quill-editor v-model="content" :options="editorOptions" @image-added="handleImageAdded" ></quill-editor> </div> </template> <script> import { quillEditor } from 'vue-quill-editor' export default { components: { quillEditor }, data() { return { content: '', editorOptions: { // 这里可以配置其他选项 } } }, methods: { handleImageAdded(file) { // 自定义处理上传图片的逻辑 // 这里可以使用AJAX或其他方式将图片上传到服务器,然后将返回的图片地址插入到编辑器中 } } } </script> ``` 在上述代码中,我们通过`@image-added`事件监听图片添加的事件,并触发`handleImageAdded`方法来处理上传图片的逻辑。 3. 实现`handleImageAdded`方法,根据你的需求自定义上传图片的逻辑。你可以使用AJAX或其他方式将图片上传到服务器,并获取返回的图片地址。然后,你可以使用Quill提供的API将图片插入到编辑器中。下面是一个示例: ```javascript methods: { handleImageAdded(file) { const formData = new FormData() formData.append('image', file) // 发送AJAX请求将图片上传到服务器 axios.post('/upload', formData) .then(response => { const imageUrl = response.data.imageUrl // 将图片地址插入到编辑器中 const range = this.$refs.editor.quill.getSelection() this.$refs.editor.quill.insertEmbed(range.index, 'image', imageUrl) }) .catch(error => { console.error('上传图片失败', error) }) } } ``` 在上述代码中,我们通过axios库发送了一个POST请求将图片上传到服务器,并获取返回的图片地址。然后,我们使用Quill提供的`insertEmbed`方法将图片地址插入到编辑器中。 请注意,这只是一个示例,具体的上传图片逻辑可能因你的项目需求而有所不同。你需要根据自己的实际情况进行相应的修改。 希望以上信息能对你有所帮助!如果你还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值