vue3 tinymce把img 的src = base64 替换成 url

1.tinymce 实现上述的功能,必须重写 images_upload_handler方法,下面是tinymce6.0版本以上的写法,注意images_upload_handler方法的回调。

const initConfig = reactive({
  menubar: false, // 菜单栏显隐
  language_url: `${appBaseUrl}tinymce/i18n/zh_CN.js`,
  language: 'zh_CN',
  skin_url: appBaseUrl + (appStore.mode === 'light' ? 'tinymce/skins/ui/tinymce-5' : 'tinymce/skins/ui/tinymce-5-dark'),
  height: props.height,
  toolbar_mode: 'wrap',
  plugins: props.plugins,
  toolbar: props.toolbar,
  branding: false,
  content_css: `${appBaseUrl}tinymce/skins/content/default/content.css`,
  font_size_formats: '12px 14px 16px 18px 20px 22px 24px 26px 28px 30px 32px 34px 36px 38px 40px',
  font_size_input_default_unit: 'px',
  // blobInfo 就是粘贴的图片对象
  images_upload_handler: (blobInfo) => new Promise( async( resolve, reject ) => {
    // [blobInfo.blob() 转换为 file 好上传后端oss保存图片
    const file = new File([blobInfo.blob()], blobInfo.filename())
    // 这是我自己的上传oss方法,各位自行修改即可
    const result = await uploadRequest(file, 'file', 'uploadImage', {});
    // 判断是否上传成功.
    if(result && result.url){
    // 上传成功直接这样返回url即可.
      resolve(result.url)
    }else{
    // 上次失败返回
      reject('上传文件错误!')
    }
  }),
})

2.这下面是6.0版本以下的写法,因为6.0版本以上重构了images_upload_handler方法,所以百度大部分都是6.0版本以下的修改方法。

也是和上面一样,重写images_upload_handler方法,注意参数。注意,就是把resolve 改成了 success,reject 改成了 failure

 images_upload_handler: (blobInfo, success, failure) => {
    // [blobInfo.blob() 转换为 file 好上传后端oss保存图片
    const file = new File([blobInfo.blob()], blobInfo.filename())
    // 这是我自己的上传oss方法,各位自行修改即可
    const result = await uploadRequest(file, 'file', 'uploadImage', {});
    // 判断是否上传成功.
    if(result && result.url){
    // 上传成功直接这样返回url即可.
      success(result.url)
    }else{
    // 上次失败返回
      failure('上传文件错误!')
    }
},

效果:
在这里插入图片描述

希望对各位有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值