springboot后端存儲富文本內(nèi)容的思路與步驟(含圖片內(nèi)容)
基本知識
springboot:后端快速應(yīng)用開發(fā)框架。
tinymce:簡單的富文本編輯器。
base64:Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法。編碼規(guī)則:把3個(gè)字節(jié)變成4個(gè)字節(jié);每76個(gè)字符加一個(gè)換行符;最后的結(jié)束符也要處理。對于圖片來說,base64 編碼就是可以將一副圖片數(shù)據(jù)編碼成一串字符串,使用該字符串代替圖像地址。
基本思路
?獲取tinymce富文本編輯器的內(nèi)容(html形式),通過axios發(fā)送到后端,后端接收到內(nèi)容后直接存儲到數(shù)據(jù)庫。
步驟
1、前端配置好tinymce富文本編輯器
?配置tinymce富文本編輯器的過程參見官方文檔:https://www.tiny.cloud/docs/tinymce/6/
我配置好的富文本編輯器效果如下:
2、獲取富文本編輯器的內(nèi)容,并發(fā)送至后端
?注意這里有一個(gè)問題就是圖片該如何傳輸,我這里是直接獲取base64格式的圖片后直接上傳,這是一個(gè)比較簡單的方法。
html內(nèi)容如下:
可以看到圖片的內(nèi)容極其長,這是base64格式編碼導(dǎo)致的,不過好處是當(dāng)前端請求富文本內(nèi)容時(shí),如果一篇文章中有很多圖片的話,瀏覽器不用多次發(fā)起圖片請求,而是圖片和文字一起發(fā)送到了前端。
關(guān)于圖片上傳到富文本編輯器后轉(zhuǎn)為base64格式的代碼參考:http://chabaoo.cn/article/281350.htm
前端通過axios將富文本發(fā)送給后端的代碼:
axios({ method: 'post', url: 'http://localhost:8081/users/news', data: { "categoryId": 1, "userId": 1, "title": "震驚?。?0歲老頭竟然。。。。", "context": tinymce.activeEditor.getContent() } }).then((res)=>{ console.log(res.data) })
?還有一個(gè)方法是圖片內(nèi)容和文字內(nèi)容分開上傳,內(nèi)容依舊是html格式,但是“<img src=“圖片路徑”>”,這里的圖片路徑需要重寫為圖片上傳后存儲在服務(wù)器上的路徑。
3、后端在數(shù)據(jù)庫創(chuàng)建表
?注意:存儲富文本的內(nèi)容的數(shù)據(jù)類型為longtext,防止內(nèi)容過長無法保存
存儲結(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后端存儲富文本內(nèi)容的思路與步驟的文章就介紹到這了,更多相關(guān)springboot后端存儲富文本內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序與AspNetCore SignalR聊天實(shí)例代碼
這篇文章主要介紹了微信小程序與AspNetCore SignalR聊天實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08sprintboot使用spring-security包,緩存內(nèi)存與redis共存方式
這篇文章主要介紹了sprintboot使用spring-security包,緩存內(nèi)存與redis共存方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10SpringBoot?如何使用sharding?jdbc進(jìn)行分庫分表
這篇文章主要介紹了SpringBoot?如何使用sharding?jdbc進(jìn)行分庫分表,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Springboot使用Maven占位符@替換不生效問題及解決
這篇文章主要介紹了Springboot使用Maven占位符@替換不生效問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Java設(shè)計(jì)模式之單一職責(zé)原則精解
設(shè)計(jì)模式(Design pattern)代表了最佳的實(shí)踐,通常被有經(jīng)驗(yàn)的面向?qū)ο蟮能浖_發(fā)人員所采用。設(shè)計(jì)模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設(shè)計(jì)模式七大原則之一的單一職責(zé)原則2022-02-02