vue quill富文本编辑器上传图片遇到的坑

在使用quill富文本编辑器上传图片的时候,很多地方都是成功的,但是唯有一处,上传图片总是失败,由此后端的朋友就说可以html标签转换成JSON字符串上传上去,展示的时候在转换回来,即可解决问题。

由此,我保持怀疑的心态开始了尝试:

首先就是引入html2json依赖

npm install html2json

然后就是将富文本编辑器里输入的内容,也就是导出的html标签转换成JSON:

 var html2json = require('html2json').html2json;
 this.addFrom.content =  JSON.stringify(html2json(this.addFrom.content))
//直接复制即可

其转换结果如下:

this.addFrom.content:{
    "node":"root",
    "child":[
        {
            "node":"element",
            "tag":"p","
             child":[
                {
                    "node":"text",
                    "text":"全"
                },{
                    "node":"element",
                    "tag":"img",
                    "attr":{
                        "src":"https://test.files.gongxiangsc.com/2023/02/13/da1472d9-db19-4b7d-9f40-305572f1f658.jpg"
                    }
                },{
                    "node":"text",
                    "text":"你还只想着坚实的机会 "
                }
            ]
        }
    ]
}

再次转换成JSON字符串看个人选择,有的会有后台要求。

当然要是不喜欢这种系统自带的格式的话,也可以自己自定义一些格式,只要能够在逆转回来。比如说是以下的格式:

//对插件生成的数据进行处理,处理成自己想要的格式  "[{"state":"textasdasd"},{"state":"imaghttps://xxxx.jpeg"}]"
 release(types, bol = true) {
      let json = html2json(this.detailContent);
      let arr = [];
      for (let i of json.child) {
        for (let j of i.child) {
          if (j.node == "text") {
            let obj = {};
            let tex = "text" + j.text;
            obj.state = tex;
            arr.push(obj);
          } else if (j.tag == "img") {
            let obj = {};
            let tex = "imag" + j.attr.src;
            obj.state = tex;
            arr.push(obj);
          }
        }
      }

作者:凡人已非凡
链接:https://juejin.cn/post/6844903864659886087
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

而在将其回显的时候,则需要将其从JSON中再次转换出来,

var json2html = require('html2json').json2html;
 this.echo = json2html(JSON.parse(this.addFrom.content))
//直接复制即可

其结果如下:

<p>全<img src="https://test.files.gongxiangsc.com/2023/02/13/da1472d9-db19-4b7d-9f40-305572f1f658.jpg"/>你还只想着坚实的机会 </p>

可正常通过富文本编辑器展示。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值