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('上传文件错误!')
}
},
效果:
希望对各位有所帮助。