wangEditor 富文本編輯器

為什么需要富文本編輯器

RTE目的是提供給不會(huì)寫(xiě)HTML代碼的用戶,編輯出類(lèi)似WORD格式的WEB文檔纺涤。
主要應(yīng)用場(chǎng)景:郵件編寫(xiě)译暂、論壇灌水、電商商品管理撩炊、新聞消息模塊

常見(jiàn)的富文本編輯器

百度的UEditor外永、kindEditor、TinyMCE衰抑、ckeditor象迎、王福朋的wangEditor

wangEditor的介紹

wangEditor于2014年11月推出荧嵌,是基于bootstrap的一款富文本編輯器
wangEditor的定位是做最簡(jiǎn)單呛踊、易用、快捷啦撮、輕量化的富文本編輯器谭网。
wangEditor(僅支持 IE10+ 的瀏覽器)
官網(wǎng):www.wangEditor.com
文檔:www.kancloud.cn/wangfupeng/wangeditor3/332599
源碼:github.com/wangfupeng1988/wangEditor

Spring MVC整合wangEditor


POM.xml

        <!-- 文件上傳與下載 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>

spring-mvc.xml

    <mvc:resources mapping="/upload/**" location="/upload/" cache-period="31536000"/>

    <!-- SpringMVC上傳文件時(shí),需要配置MultipartResolver處理器 -->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 上傳文件大小上限赃春,單位為字節(jié)(10MB) -->
        <property name="maxUploadSize">
            <value>10485760</value>
        </property>
        <!-- 請(qǐng)求的編碼格式愉择,必須和jSP的pageEncoding屬性一致,以便正確讀取表單的內(nèi)容,默認(rèn)為ISO-8859-1 -->
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
    </bean>

pojo

public class WangEditor {
    private Integer errno; //錯(cuò)誤代碼, 0標(biāo)識(shí)沒(méi)有錯(cuò)誤
    private String[] data; //已上傳到圖片路徑
}

Controller

@Controller
@RequestMapping(value="/upload")
public class UploadController{

    @ResponseBody
    @RequestMapping(value="wang")
    public WangEditor uploadFile(
            @RequestParam("myFile") MultipartFile multipartFile,
            HttpServletRequest request) {

        try {
            // 獲取服務(wù)器真實(shí)路徑
            String realPath = request.getSession().getServletContext().getRealPath("");
            InputStream inputStream = multipartFile.getInputStream();
            String contextPath = request.getContextPath();
            // 服務(wù)器根目錄的路徑
            String path = null;
            if(contextPath.length()>0) {
                path = realPath.replace(contextPath.substring(1), "");
            }else{
                path = realPath;
            }
            // 根目錄下新建文件夾upload锥涕,存放上傳圖片
            String uploadPath = path + "upload";
            /* 獲取上傳文件的后綴 */
            String suffix = multipartFile.getOriginalFilename().substring (multipartFile.getOriginalFilename().lastIndexOf("."));
            /* 保存文件名稱(chēng) */
            String filename = UUID.randomUUID().toString()+ suffix;
            // 將文件上傳的服務(wù)器根目錄下的upload文件夾
            File file = new File(uploadPath, filename);
            FileUtils.copyInputStreamToFile(inputStream, file);
            // 返回圖片訪問(wèn)路徑
            String url = request.getScheme() + "://" + request.getServerName()
                    + ":" + request.getServerPort() + "/upload/" + filename;

            String[] strs = {url};
            WangEditor we = new WangEditor();
            we.setErrno(new Integer(0));
            we.setData(strs);
            return we;
        } catch (IOException e) {
            //log.error("上傳文件失敗", e);
            e.printStackTrace();
        }
        return null;

    }

HTML頁(yè)面

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .toolbar {
            border: 1px solid #ccc;
            width: 800px;
        }

        .text {
            border: 1px solid #ccc;
            height: 400px;
            width: 800px;
        }
    </style>
</head>

<body>
<div id="div1" class="toolbar"></div>
<div style="padding: 5px 0; color: #ccc"></div>
<div id="div2" class="text">
    <p>請(qǐng)?jiān)诖溯斎雰?nèi)容</p>
</div>
</body>
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript" src="plugins/wangeditor/wangEditor.min.js"></script>
<script>
    var E = window.wangEditor
    var editor = new E('#div1', '#div2') // 兩個(gè)參數(shù)也可以傳入 elem 對(duì)象衷戈,class 選擇器
    //開(kāi)啟debug模式
    editor.customConfig.debug = true;
    // 關(guān)閉粘貼內(nèi)容中的樣式
    editor.customConfig.pasteFilterStyle = false
    // 忽略粘貼內(nèi)容中的圖片
    editor.customConfig.pasteIgnoreImg = true
    // 使用 base64 保存圖片
    //editor.customConfig.uploadImgShowBase64 = true

    // 上傳圖片到服務(wù)器
    editor.customConfig.uploadFileName = 'myFile'; //設(shè)置文件上傳的參數(shù)名稱(chēng)
    editor.customConfig.uploadImgServer = '/upload/wang'; //設(shè)置上傳文件的服務(wù)器路徑
    editor.customConfig.uploadImgMaxSize = 3 * 1024 * 1024; // 將圖片大小限制為 3M
    //自定義上傳圖片事件
    editor.customConfig.uploadImgHooks = {
        before: function(xhr, editor, files) {

        },
        success: function(xhr, editor, result) {
            console.log("上傳成功");
        },
        fail: function(xhr, editor, result) {
            console.log("上傳失敗,原因是" + result);
        },
        error: function(xhr, editor) {
            console.log("上傳出錯(cuò)");
        },
        timeout: function(xhr, editor) {
            console.log("上傳超時(shí)");
        }
    }

    editor.create()
</script>
<br/>
<button id="editorGetBtn">獲取內(nèi)容</button>
<script>
    $("#editorGetBtn").click(function(){
        //獲取編輯器的內(nèi)容,帶樣式
        //一般使用這個(gè)獲取數(shù)據(jù)层坠,通過(guò)ajax發(fā)送給服務(wù)端 殖妇,然后服務(wù)端以String接收,保存到數(shù)據(jù)庫(kù).
        alert(editor.txt.html());
    });
</script>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末破花,一起剝皮案震驚了整個(gè)濱河市谦趣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌座每,老刑警劉巖前鹅,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異峭梳,居然都是意外死亡舰绘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)葱椭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)除盏,“玉大人,你說(shuō)我怎么就攤上這事挫以≌呷洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵掐松,是天一觀的道長(zhǎng)踱侣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)大磺,這世上最難降的妖魔是什么抡句? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮杠愧,結(jié)果婚禮上待榔,老公的妹妹穿的比我還像新娘。我一直安慰自己流济,他們只是感情好锐锣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著绳瘟,像睡著了一般雕憔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糖声,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天斤彼,我揣著相機(jī)與錄音分瘦,去河邊找鬼。 笑死琉苇,一個(gè)胖子當(dāng)著我的面吹牛嘲玫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播并扇,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼趁冈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了拜马?” 一聲冷哼從身側(cè)響起渗勘,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俩莽,沒(méi)想到半個(gè)月后旺坠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扮超,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年取刃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片出刷。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡璧疗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出馁龟,到底是詐尸還是另有隱情崩侠,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布坷檩,位于F島的核電站却音,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏矢炼。R本人自食惡果不足惜系瓢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望句灌。 院中可真熱鬧夷陋,春花似錦、人聲如沸胰锌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)匕荸。三九已至爹谭,卻和暖如春枷邪,著一層夾襖步出監(jiān)牢的瞬間榛搔,已是汗流浹背诺凡。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留践惑,地道東北人腹泌。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像尔觉,于是被迫代替她去往敵國(guó)和親凉袱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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