springboot thymeleaf 整合 百度富文本編輯器UEditor進(jìn)行圖片上傳

項(xiàng)目中需要使用到富文本編輯器唯欣,找來找去發(fā)現(xiàn)百度UEditor富文本編輯器在國內(nèi)最為常用因此就嘗試引入混萝。編輯器官網(wǎng)是:http://ueditor.baidu.com/website/index.html 遗遵, 開發(fā)文檔和js包可以從這里找到。

下面開始介紹開發(fā)過程:

  1. 引入富文本編輯器UEditor


    編輯器js文件引入的靜態(tài)目錄

    將所有下載好的js包(官方有jsp逸嘀、php等幾個(gè)版本的包车要,我下載的是jsp的)放入resources目錄下的static下,我在里面建立了個(gè)js目錄崭倘,下面又搞了個(gè)ueditor包用于存放所有編輯器js翼岁。

  2. 頁面中引入編輯器
    <div class="form-group">
    <label for="title" class="col-md-2 control-label">新聞詳情</label>
    <div class="col-md-10" style="width: 100%;">
    <script id="editor" name="detailContent" type="text/plain" style="width:100;height:500px;"></script>
    </div>
    </div>

引入相關(guān)js文件:

<script type="text/javascript" charset="utf-8" src="/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="/js/ueditor/ueditor.all.min.js"> </script>
<!--建議手動加在語言,避免在ie下有時(shí)因?yàn)榧虞d語言失敗導(dǎo)致編輯器加載失敗-->
<!--這里加載的語言文件會覆蓋你在配置項(xiàng)目里添加的語言類型司光,比如你在配置項(xiàng)目里配置的是英文琅坡,這里加載的中文,那最后就是中文-->
<script type="text/javascript" charset="utf-8" src="/js/ueditor/lang/zh-cn/zh-cn.js"></script>
<script type="text/javascript" charset="utf-8" src="/js/ueditor/ueditor.js"></script>

其中/js/ueditor/ueditor.js是我根據(jù)官方demo中封裝的一些方法残家,方便使用而已榆俺,可有可無。

測試打開頁面應(yīng)該已經(jīng)有了編輯器展示了。

  1. 編輯器配置文件修改
    為了后續(xù)可以上傳等與后臺交互的操作茴晋,需要修改下統(tǒng)一配置文件陪捷,就是剛引入的ueditor.config.js,
    我這里主要改動了兩個(gè)地方:
    a. 服務(wù)器地址
    b. 工具項(xiàng)配置
    如下:
    window.UEDITOR_CONFIG = {

        //為編輯器實(shí)例添加一個(gè)路徑,這個(gè)不能被注釋
        UEDITOR_HOME_URL: URL

        // 服務(wù)器統(tǒng)一請求接口路徑
        // , serverUrl: URL + "jsp/controller.jsp"
        , serverUrl: "http://localhost:8081/admin/imgUpload2"
        //工具欄上的所有的功能按鈕和下拉框诺擅,可以在new編輯器的實(shí)例時(shí)選擇自己需要的重新定義
        , toolbars: [[
            'fullscreen', 'source', '|', 'undo', 'redo', '|',
            'bold', 'italic', 'underline', 'fontborder', 'strikethrough',  'removeformat', 'formatmatch', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
            'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
            'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
            'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|',
            'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
            'simpleupload', 'insertimage',  'insertvideo', 'music', 'attachment', 'map', '|',
            'horizontal', 'date', 'time',  '|',
            'print', 'preview', 'searchreplace'
        ]]

其中serverUrl是服務(wù)器地址市袖,這個(gè)地址要是錯(cuò)誤,會使得本地圖片上傳的地方無法使用烁涌。而該方法返回的是一組JSON格式的配置苍碟。我參照著原來jsp例子中的結(jié)果直接返了個(gè)JSON:

@RequestMapping(value = "/imgUpload2")
    @ResponseBody
    public String imgUpload(HttpServletRequest request) {
        String config = "{\n" +
                "videoMaxSize: 102400000,\n" +
                "videoActionName: \"uploadvideo\",\n" +
                "fileActionName: \"uploadfile\",\n" +
                "fileManagerListPath: \"/ueditor/jsp/upload/file/\",\n" +
                "imageCompressBorder: 1600,\n" +
                "imageManagerAllowFiles: [\n" +
                "\".png\",\n" +
                "\".jpg\",\n" +
                "\".jpeg\",\n" +
                "\".gif\",\n" +
                "\".bmp\"\n" +
                "],\n" +
                "imageManagerListPath: \"/ueditor/jsp/upload/image/\",\n" +
                "fileMaxSize: 51200000,\n" +
                "fileManagerAllowFiles: [\n" +
                "\".png\",\n" +
                ...
                ...

json具體參見引入的jsp包下的config.json,原樣返回即可。
有了這個(gè)接口撮执,當(dāng)我們點(diǎn)擊本地圖片上傳控件時(shí)微峰,應(yīng)該就可以彈出文件選擇器,選擇本地圖片了二打。但是此時(shí)選好圖片后县忌,文件實(shí)際是上傳不了的,因?yàn)槲覀冞€得重新寫一個(gè)我們自己的圖片上傳接口继效。

  1. 圖片上傳接口及設(shè)置
    圖片上傳接口代碼:
    @RequestMapping(value = "/imgUpload3")
    @ResponseBody
    public String imgUpload3(MultipartFile upfile) {
        String path = this.imgUpload(upfile).getData();
                String config =
                "{\n" +
                "            \"state\": \"SUCCESS\",\n" +
                "                \"url\": \"http://localhost:8081/upload/"+path+"\",\n" +
                "                \"title\": \"path\",\n" +
                "                \"original\": \"path\"\n" +
                "        }";
        return config;
    }

其中this.imgUpload(upfile).getData()這個(gè)方法是之前寫的springboot進(jìn)行文件上傳的接口症杏,見:http://www.reibang.com/p/a839637710f9 , getData方法返回了圖片的路徑瑞信,
而這個(gè)接口中返回的json格式是官方api中規(guī)定的厉颤,見官方文檔:http://fex.baidu.com/ueditor/#dev-request_specification
好了本地圖片上傳的接口已經(jīng)寫好了凡简,最后就是設(shè)置一下編輯器的上傳圖片請求路徑逼友。
在前端頁面中加入:

        UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
        UE.Editor.prototype.getActionUrl = function(action) {
            if (action == 'uploadimage' || action == 'uploadscrawl' || action == 'uploadimage') {
                return 'http://localhost:8081/admin/imgUpload3';
            } else if (action == 'uploadvideo') {
                return 'http://a.b.com/video.php';
            } else {
                return this._bkGetActionUrl.call(this, action);
            }
        }

好了,現(xiàn)在應(yīng)該可以在編輯器中進(jìn)行完整的圖片上傳了操作了秤涩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帜乞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子筐眷,更是在濱河造成了極大的恐慌黎烈,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匀谣,死亡現(xiàn)場離奇詭異照棋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)武翎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門烈炭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宝恶,你說我怎么就攤上這事符隙∨客保” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵膏执,是天一觀的道長驻售。 經(jīng)常有香客問我露久,道長更米,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任毫痕,我火速辦了婚禮征峦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘消请。我一直安慰自己栏笆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布臊泰。 她就那樣靜靜地躺著蛉加,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缸逃。 梳的紋絲不亂的頭發(fā)上针饥,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音需频,去河邊找鬼丁眼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昭殉,可吹牛的內(nèi)容都是我干的苞七。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼挪丢,長吁一口氣:“原來是場噩夢啊……” “哼蹂风!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乾蓬,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤惠啄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后巢块,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體礁阁,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年族奢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姥闭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡越走,死狀恐怖棚品,靈堂內(nèi)的尸體忽然破棺而出靠欢,到底是詐尸還是另有隱情,我是刑警寧澤铜跑,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布门怪,位于F島的核電站,受9級特大地震影響锅纺,放射性物質(zhì)發(fā)生泄漏掷空。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一囤锉、第九天 我趴在偏房一處隱蔽的房頂上張望坦弟。 院中可真熱鬧,春花似錦官地、人聲如沸酿傍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赤炒。三九已至,卻和暖如春亏较,著一層夾襖步出監(jiān)牢的瞬間莺褒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工宴杀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留癣朗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓旺罢,卻偏偏與公主長得像旷余,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子扁达,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1.背景介紹 在做Web應(yīng)用時(shí)正卧,經(jīng)常會進(jìn)行富文本編輯,常用的富文本編輯器有很多跪解,比如CuteEditor炉旷、CKEd...
    維克拉瑪?shù)賮?/span>閱讀 2,186評論 0 0
  • 大家好,我是IT修真院成都分院第三期的學(xué)員王奎智叉讥,一枚正直純潔善良的WEB前端程序員窘行。 今天給大家分享一下,修真院...
    一個(gè)要娶張靜初的人閱讀 15,912評論 0 9
  • 不經(jīng)意地算了一下图仓,我愛孟林竟然已經(jīng)有二十個(gè)年頭了罐盔。如果放到小說里,算得上天荒地老了救崔。我自己也說不清惶看,是什么東西支持...
    dbfedfdc9ebc閱讀 288評論 0 2
  • 八班的女孩沈宇捏顺,頎長的身材,文靜的臉龐纬黎,留著齊耳短發(fā)幅骄,一股書卷氣。課堂上不急不躁本今,回答問題有條有序拆座,娓娓道...
    筱竹華倩閱讀 432評論 0 3
  • Welcome to StackEdit! Hey! I’m your first Markdown docume...
    錦纏道8912閱讀 398評論 0 1