springboot后端存储富文本内容的思路与步骤(含图片内容)

 更新时间:2023年04月17日 11:09:09   作者:野er  
在所有的编辑器中,大概最受欢迎的就是富文本编辑器和MarkDown编辑器了,下面这篇文章主要给大家介绍了关于springboot后端存储富文本内容的思路与步骤的相关资料,需要的朋友可以参考下

基本知识

springboot:后端快速应用开发框架。

tinymce:简单的富文本编辑器。

base64:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。编码规则:把3个字节变成4个字节;每76个字符加一个换行符;最后的结束符也要处理。对于图片来说,base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址。

基本思路

​获取tinymce富文本编辑器的内容(html形式),通过axios发送到后端,后端接收到内容后直接存储到数据库。

步骤

1、前端配置好tinymce富文本编辑器

​配置tinymce富文本编辑器的过程参见官方文档:https://www.tiny.cloud/docs/tinymce/6/

我配置好的富文本编辑器效果如下:

2、获取富文本编辑器的内容,并发送至后端

​注意这里有一个问题就是图片该如何传输,我这里是直接获取base64格式的图片后直接上传,这是一个比较简单的方法。

html内容如下:

可以看到图片的内容极其长,这是base64格式编码导致的,不过好处是当前端请求富文本内容时,如果一篇文章中有很多图片的话,浏览器不用多次发起图片请求,而是图片和文字一起发送到了前端。

关于图片上传到富文本编辑器后转为base64格式的代码参考:https://www.jb51.net/article/281350.htm

前端通过axios将富文本发送给后端的代码:

 axios({
        method: 'post',
        url: 'http://localhost:8081/users/news',
        data: {
          "categoryId": 1,
        "userId": 1,
        "title": "震惊!!60岁老头竟然。。。。",
        "context": tinymce.activeEditor.getContent()
        }
      }).then((res)=>{
        console.log(res.data)
      })

​还有一个方法是图片内容和文字内容分开上传,内容依旧是html格式,但是“<img src=“图片路径”>”,这里的图片路径需要重写为图片上传后存储在服务器上的路径。

3、后端在数据库创建表

​注意:存储富文本的内容的数据类型为longtext,防止内容过长无法保存

存储结果如下:

4、后端编写接收富文本内容的接口

@ApiOperation("发表新闻")
    @PostMapping("/news")
    public Result updateNews(@RequestParam Long userId,@RequestParam Integer categoryId,@RequestParam String title,@RequestParam String context){
        System.out.println("发表新闻"+context);
        Result result = new Result();
        News news = new News(categoryId,userId,title,context);
        boolean flag = newsService.save(news);
        if (!flag){
            result.setFlag(false);
            return result;
        }
        result.setFlag(true);
        return result;
    }

这里我只给了controller的代码,还有service、dao的代码相信有基础的同学可以自行编写。

总结

到此这篇关于springboot后端存储富文本内容的思路与步骤的文章就介绍到这了,更多相关springboot后端存储富文本内容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现解压zip压缩包的两种方法(支持多层级)

    Java实现解压zip压缩包的两种方法(支持多层级)

    压缩文件在生活中经常能用到,在Java中提供了压缩和解压缩文件的功能,本文主要介绍了Java实现解压zip压缩包的两种方法(支持多层级),感兴趣的可以了解一下
    2024-03-03
  • Mybatis动态SQL的示例代码

    Mybatis动态SQL的示例代码

    本文主要介绍了Mybatis动态SQL的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 关于application.yml基础配置以及读取方式

    关于application.yml基础配置以及读取方式

    这篇文章主要介绍了关于application.yml基础配置以及读取方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • java中HashMap的原理分析

    java中HashMap的原理分析

    HashMap在Java开发中有着非常重要的角色地位,每一个Java程序员都应该了解HashMap。详细地阐述HashMap中的几个概念,并深入探讨HashMap的内部结构和实现细节,讨论HashMap的性能问题
    2016-03-03
  • springMVC引入Validation的具体步骤详解

    springMVC引入Validation的具体步骤详解

    本文简单介绍如何引入validation的步骤,如何通过自定义validation减少代码量,提高生产力,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • AQS加锁机制Synchronized相似点详解

    AQS加锁机制Synchronized相似点详解

    这篇文章主要为大家介绍了AQS加锁机制Synchronized相似点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • java 远程文件url如何转为输入流

    java 远程文件url如何转为输入流

    这篇文章主要介绍了java 远程文件url如何转为输入流方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 在Idea2020.1中使用gitee2020.1.0创建第一个代码库的实现

    在Idea2020.1中使用gitee2020.1.0创建第一个代码库的实现

    这篇文章主要介绍了在Idea2020.1中使用gitee2020.1.0创建第一个代码库的实现,文中通过图文示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Ubuntu安装jenkins完成自动化构建详细步骤

    Ubuntu安装jenkins完成自动化构建详细步骤

    Jenkins是一个开源的自动化服务器,可以用来轻松地建立持续集成和持续交付(CI/CD)管道,这篇文章主要给大家介绍了关于Ubuntu安装jenkins完成自动化构建的相关资料,需要的朋友可以参考下
    2024-03-03
  • Spring Data Neo4j Cypher查询使用

    Spring Data Neo4j Cypher查询使用

    本文介绍了Spring Data Neo4j Cypher查询使用的几种方法,包括使用Repository接口、动态查询、服务层组合、外部查询文件和图形化查询构建器, 感兴趣的可以了解一下
    2024-11-11

最新评论