首页 > 其他分享 >tinymce 5.X 和 6.X 富文本编辑器如何实现上传图片

tinymce 5.X 和 6.X 富文本编辑器如何实现上传图片

时间:2024-04-24 09:02:53浏览次数:21  
标签:文本编辑 success base64 tinymce blobInfo images 上传 图片

在项目中,前端会经常使用tinymce富文本编辑器插件,编辑器有上传图片的功能,而对于上传的这个图片的处理,有两种方式:

编辑器中有一个images_upload_handler方法,上传图片会触发该事件,该事件有3个参数,分别是上传图片的文件内容、上传成功的success处理方法、上传失败的failure处理方法。

5.X 方式一:上传图片时将文件流给后端,后端返回附件地址

images_upload_handler: (blobInfo, success, failure) => {
          let fd = new FormData();
          fd.append("file", blobInfo.blob());
          // 调接口,上传图片
          api.uploadImg(fd).then(response => {
   // 后端接口返回上传图片的访问地址
             let result = `${location.origin}/${response}`
   // 编辑器的上传图片内容被处理为<img src="success方法里面的参数" />
           success(result)
          })
        }

5.X 方式二:上传图片时前端读取文件,转为base64格式,放在img的src中,不需要通过后端

images_upload_handler: (blobInfo, success, failure) => {
          let base64 = "data:"+ blobInfo.blob().type + ";base64,"  + blobInfo.base64();// "data:image/png;base64," + blobInfo.base64();
     //编辑器的上传图片内容被处理为<img src="success方法里面的参数" />
   success(base64);
}

 

6.X 方式:上传图片时将文件流给后端,后端返回附件地址

//6.x写法
        images_upload_handler(blobInfo, progress) {
            return new Promise((resolve, reject) => {
                const param = new FormData()
                param.append('file', blobInfo.blob(), blobInfo.filename())
                props
                    .fileUploadFunction(param)
                    .then((data) => {
                        return resolve(data)
                    })
                    .catch((err) => {
                        return reject('err:' + err)
                    })
            })
        },

 

标签:文本编辑,success,base64,tinymce,blobInfo,images,上传,图片
From: https://www.cnblogs.com/Fooo/p/18154278

相关文章

  • Markdowmtoblog 文件图片上传
    pycnblog博客园上传markdown文件https://www.cnblogs.com/df888/p/11826480.html注意博客园6.21更新,MetaWeblog现在不支持密码登录,需要通过访问令牌(accesstoken)登录,在博客后台设置页面,允许MetaWeblog博客客户端访问,下方有MetaWeblog访问令牌,点击查看,创建访问令牌。功能一......
  • 使用@MultipartConfig上传图片文件
    @MultipartConfig是JavaServletAPI的一部分,主要用于处理HTTP的multipart/form-data类型的请求,这种请求通常用于文件上传。当你在Servlet或JSP页面中使用@MultipartConfig时,你告诉容器这个Servlet或JSP页面将处理文件上传。@MultipartConfig(location="C:/Users/Administrator......
  • 文件上传-cnblog
    文件上传概念文件上传漏洞是指用户上传了一个可执行的脚本文件(php、jsp、xml、cer等文件),而WEB系统没有进行检测或逻辑做的不够安全文件上传必须以POST提交表单。表单中需要<inputtype="file"name="upload">攻击者通过上传恶意文件传递给解释器执行,然后就可以在服务器上......
  • 测试(上传博客)
    数据结构——单链表笔记//指的是单向链表中的结点有效数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造链表的结点,链表中所有结点的数据类型应该是相同的typedefstructLinkedList{ DataType_t data;//结点的数据域 structLinkedList *next;//结......
  • vue.js 3 上传文件:el-upload 组件
    "@element-plus/icons-vue":"^2.3.1","axios":"^1.6.8","element-plus":"^2.6.2","pinia":"^2.1.7","pinia-plugin-persistedstate":"^3.2.1","vue":&......
  • el-upload二次封装实现上传图片校验
    说明项目开发中,常常需要对上传图片做大小、类型、宽高校验实现要点el-upload中定义:before-upload="handleBeforeUpload"事件img.onload为异步事件,需要Promise包裹才能真正实现校验,直接returntrue|false是没用的代码<el-upload:before-update="handleBeforeUpdate":htt......
  • uni app uview新增商品页(无限级分类选择和多图上传)
    uniappuview新增商品页(无限级分类选择和多图上传)给自己的牛腩商品库UNIAPP加的一个新增功能,就是通用的新增页面,用的uview2(https://uviewui.com/components/intro.html),能选择无限级分类和多图上传,自已觉得这个新增页面在以后做uniapp项目的时候很多地方会用到吧,先记下来了,以......
  • 大文件上传
    大文件多线程切片并发上传技术使用:File.sliceFileReaderspark-md5webworker<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,......
  • SpringBoot 上传图片
    1概述新做的博客系统需要在markdown文本中插入图片,之前完成过上传图片的相关配置,但未做总结,借着这个机会,对于springboot上传图片接口的相关配置和操作,做一个系统性阐述。以作为未来相关业务的参考。本文主要阐述后端相关配置,少量前端(vue3)内容仅是为了作为测试。2配置文......
  • blog.admin net8发布二级目录,及图片上传路径处理
    1、发布二级目录,修改以下配置,及对应的二级目录名跟配置的一致 2、图片上传a、修改后台api代码imgController.cspublicasyncTask<MessageModel<string>>InsertPicture([FromForm]UploadFileDtodto){if(dto.file==null||!dto.file.Any())returnFail......