wangEditor自定义选择图片后上传

 <Toolbar
        style="border-bottom: 1px solid #ccc"
        :editor="editorRef"
        :defaultConfig="toolbarConfig"
        :mode="mode"
    />
    <Editor
        :style="{ height: `${props.height}px`, overflowy: 'hidden' }"
        v-model="valueHtml"
        :defaultConfig="editorConfig"
        :mode="mode"
        @onCreated="handleCreated"
        @onChange="handleOnChange"
        @onFocus="handleFocus"
        @onBlur="handleBlur"
    />
    //封装的element的上传组件
     <Upload name="image"
             :showList="false"
             :limit="1"
             :accept="'.png,.jpg,.jpeg,.gif'"
             @onSuccess="onSuccess"
          >
      </Upload>

ts

const mode = ref("default");
// 编辑器实例,必须用 shallowRef
const editorRef = shallowRef();
const editor = editorRef.value;
// 内容 HTML
const valueHtml:any = ref(props.Html);
// 当编辑器创建的时候
const handleCreated = (editor) => {
  editorRef.value = editor;
};
//上传成功后
const onSuccess = (data:any) =>{
  console.log('上传成功:'+JSON.stringify(data))
  const img = `<img src="${data.url}" alt="${data.name}"/>`
  //上传成功后把图片插入内容
  editorRef.value.dangerouslyInsertHtml(img)  
}
const editorConfig: Partial<IEditorConfig> = {
  // TS 语法
  placeholder: "请输入内容...",
  readOnly: props.readOnly,
  MENU_CONF: {
    uploadImage: {
      allowedFileTypes: ['image/*'],
      // 自定义选择图片
      async customBrowseAndUpload(insertFn) {  
        document.querySelector('.el-upload__input').click()  //这里使用element的上传组件
      },
    }
  },
};
### WangEditor 中实现自定义图片上传 为了在 WangEditor 中实现自定义图片上传功能,可以按照以下方式操作: #### 安装依赖包 首先需要安装 `@wangeditor/editor` 和 `@wangeditor/editor-for-vue` 这两个核心库[^3]。 对于 Vue 项目而言,推荐使用如下命令进行安装: ```bash yarn add @wangeditor/editor yarn add @wangeditor/editor-for-vue@next ``` 或者也可以通过 npm 来完成相同的操作: ```bash npm install @wangeditor/editor --save npm install @wangeditor/editor-for-vue@next --save ``` #### 创建并配置编辑器实例 创建一个新的 Vue 组件用于承载编辑器,并初始化它。在此过程中需引入必要的模块并设置好初始状态。 ```javascript import { onBeforeUnmount, ref, shallowRef, watchEffect } from 'vue' import { Editor, Toolbar } from '@wangeditor/editor-for-vue' export default { components: { Editor, Toolbar }, setup() { const editorRef = shallowRef() // 配置项 const config = { placeholder: '请输入内容...', // 自定义图片接口 MENU_CONF: { uploadImage: { server: '/your-server-url', // 后端接收地址 fieldName: 'file', maxFileSize: 2 * 1024 * 1024, async customUpload(file, insertFn) { try { let formData = new FormData(); formData.append('image', file); // 使用axios或其他HTTP客户端发送请求给服务器 const res = await axios.post('/api/upload-image', formData); // 成功后调用insertFn插入返回的结果链接 if (res.status === 200 && res.data.url) { insertFn(res.data.url, '', ''); } } catch(error){ console.error('upload error:', error.message); } } } } } return { editorRef, config } } } ``` 这段代码展示了如何利用 Axios 库向指定 URL 发送文件数据,并将成功响应中的图像路径递回编辑器以显示已上的内容[^4]。 #### 处理编辑器生命周期事件 确保当组件卸载时正确销毁编辑器实例,防止内存泄漏等问题发生。 ```javascript onBeforeUnmount(() => { const editor = editorRef.value; if(editor == null ) return ; editor.destroy(); }) ``` 以上就是关于如何在 WangEditor 编辑器中集成自定义图片上传功能的方法介绍。需要注意的是,在实际开发环境中应当根据具体需求调整 API 请求的方式及参数设定等内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值