springboot后端存儲(chǔ)富文本內(nèi)容的思路與步驟(含圖片內(nèi)容)
基本知識(shí)
springboot:后端快速應(yīng)用開(kāi)發(fā)框架。
tinymce:簡(jiǎn)單的富文本編輯器。
base64:Base64是網(wǎng)絡(luò)上最常見(jiàn)的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的方法。編碼規(guī)則:把3個(gè)字節(jié)變成4個(gè)字節(jié);每76個(gè)字符加一個(gè)換行符;最后的結(jié)束符也要處理。對(duì)于圖片來(lái)說(shuō),base64 編碼就是可以將一副圖片數(shù)據(jù)編碼成一串字符串,使用該字符串代替圖像地址。
基本思路
?獲取tinymce富文本編輯器的內(nèi)容(html形式),通過(guò)axios發(fā)送到后端,后端接收到內(nèi)容后直接存儲(chǔ)到數(shù)據(jù)庫(kù)。
步驟
1、前端配置好tinymce富文本編輯器
?配置tinymce富文本編輯器的過(guò)程參見(jiàn)官方文檔:https://www.tiny.cloud/docs/tinymce/6/
我配置好的富文本編輯器效果如下:

2、獲取富文本編輯器的內(nèi)容,并發(fā)送至后端
?注意這里有一個(gè)問(wèn)題就是圖片該如何傳輸,我這里是直接獲取base64格式的圖片后直接上傳,這是一個(gè)比較簡(jiǎn)單的方法。
html內(nèi)容如下:

可以看到圖片的內(nèi)容極其長(zhǎng),這是base64格式編碼導(dǎo)致的,不過(guò)好處是當(dāng)前端請(qǐng)求富文本內(nèi)容時(shí),如果一篇文章中有很多圖片的話,瀏覽器不用多次發(fā)起圖片請(qǐng)求,而是圖片和文字一起發(fā)送到了前端。
關(guān)于圖片上傳到富文本編輯器后轉(zhuǎn)為base64格式的代碼參考:http://www.dhdzp.com/article/281350.htm
前端通過(guò)axios將富文本發(fā)送給后端的代碼:
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)
})?還有一個(gè)方法是圖片內(nèi)容和文字內(nèi)容分開(kāi)上傳,內(nèi)容依舊是html格式,但是“<img src=“圖片路徑”>”,這里的圖片路徑需要重寫為圖片上傳后存儲(chǔ)在服務(wù)器上的路徑。
3、后端在數(shù)據(jù)庫(kù)創(chuàng)建表
?注意:存儲(chǔ)富文本的內(nèi)容的數(shù)據(jù)類型為longtext,防止內(nèi)容過(guò)長(zhǎng)無(wú)法保存

存儲(chǔ)結(jié)果如下:

4、后端編寫接收富文本內(nèi)容的接口
@ApiOperation("發(fā)表新聞")
@PostMapping("/news")
public Result updateNews(@RequestParam Long userId,@RequestParam Integer categoryId,@RequestParam String title,@RequestParam String context){
System.out.println("發(fā)表新聞"+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的代碼相信有基礎(chǔ)的同學(xué)可以自行編寫。
總結(jié)
到此這篇關(guān)于springboot后端存儲(chǔ)富文本內(nèi)容的思路與步驟的文章就介紹到這了,更多相關(guān)springboot后端存儲(chǔ)富文本內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)解壓zip壓縮包的兩種方法(支持多層級(jí))
壓縮文件在生活中經(jīng)常能用到,在Java中提供了壓縮和解壓縮文件的功能,本文主要介紹了Java實(shí)現(xiàn)解壓zip壓縮包的兩種方法(支持多層級(jí)),感興趣的可以了解一下2024-03-03
關(guān)于application.yml基礎(chǔ)配置以及讀取方式
這篇文章主要介紹了關(guān)于application.yml基礎(chǔ)配置以及讀取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
AQS加鎖機(jī)制Synchronized相似點(diǎn)詳解
這篇文章主要為大家介紹了AQS加鎖機(jī)制Synchronized相似點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
java 遠(yuǎn)程文件url如何轉(zhuǎn)為輸入流
這篇文章主要介紹了java 遠(yuǎn)程文件url如何轉(zhuǎn)為輸入流方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
在Idea2020.1中使用gitee2020.1.0創(chuàng)建第一個(gè)代碼庫(kù)的實(shí)現(xiàn)
這篇文章主要介紹了在Idea2020.1中使用gitee2020.1.0創(chuàng)建第一個(gè)代碼庫(kù)的實(shí)現(xiàn),文中通過(guò)圖文示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Ubuntu安裝jenkins完成自動(dòng)化構(gòu)建詳細(xì)步驟
Jenkins是一個(gè)開(kāi)源的自動(dòng)化服務(wù)器,可以用來(lái)輕松地建立持續(xù)集成和持續(xù)交付(CI/CD)管道,這篇文章主要給大家介紹了關(guān)于Ubuntu安裝jenkins完成自動(dòng)化構(gòu)建的相關(guān)資料,需要的朋友可以參考下2024-03-03

