1. 程式人生 > >輕量級web富文字編輯器(可帶圖片上傳)

輕量級web富文字編輯器(可帶圖片上傳)

業務需求:

通過後臺編輯文章和圖片,上傳到前端介面,展示新聞訊息模組。這個時候,需要一款簡潔的編輯器,百度編輯器是最常用的一種,但是功能太過於複雜,而wangEditor - 輕量級web富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器,值得擁有。

wangEditor —— 輕量級 web 富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器。

使用示例:

前端程式碼:

<!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>請在此輸入內容</p>
        </div>
    </body>
    <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="release/wangEditor.min.js"></script>
    <script>
        var E = window.wangEditor
        var editor = new E('#div1', '#div2') // 兩個引數也可以傳入 elem 物件,class 選擇器
        //開啟debug模式
        editor.customConfig.debug = true;
        // 關閉貼上內容中的樣式
        editor.customConfig.pasteFilterStyle = false
        // 忽略貼上內容中的圖片
        editor.customConfig.pasteIgnoreImg = true
        // 使用 base64 儲存圖片
        //editor.customConfig.uploadImgShowBase64 = true

        // 上傳圖片到伺服器
        editor.customConfig.uploadFileName = 'myFile'; //設定檔案上傳的引數名稱
        editor.customConfig.uploadImgServer = 'upload.do'; //設定上傳檔案的伺服器路徑
        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("上傳出錯");
            },
            timeout: function(xhr, editor) {
                console.log("上傳超時");
            }
        }

        editor.create()
    </script>

</html>

伺服器程式碼

匯入依賴:

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

pojo:

import java.util.Arrays;
 
public class WangEditor {
    
    private Integer errno; //錯誤程式碼,0 表示沒有錯誤。
    private String[] data; //已上傳的圖片路徑
    
    public WangEditor() {
        super();
    }
    public WangEditor(String[] data) {
        super();
        this.errno = 0;
        this.data = data;
    }
    public Integer getErrno() {
        return errno;
    }
    public void setErrno(Integer errno) {
        this.errno = errno;
    }
    public String[] getData() {
        return data;
    }
    public void setData(String[] data) {
        this.data = data;
    }
    @Override
    public String toString() {
        return "WangEditor [errno=" + errno + ", data=" + Arrays.toString(data)
                + "]";
    }
    
 
}

Controller

//圖片上傳
    @RequestMapping(value = "/upload",method=RequestMethod.POST)
    @ResponseBody
    public WangEditor uploadFile(
            @RequestParam("myFile") MultipartFile multipartFile,
            HttpServletRequest request) {
 
        try {
            // 獲取專案路徑
            String realPath = request.getSession().getServletContext()
                    .getRealPath("");
            InputStream inputStream = multipartFile.getInputStream();
            String contextPath = request.getContextPath();
            // 伺服器根目錄的路徑
            String path = realPath.replace(contextPath.substring(1), "");
            // 根目錄下新建資料夾upload,存放上傳圖片
            String uploadPath = path + "upload";
            // 獲取檔名稱
            String filename = MoteUtils.getFileName();
            // 將檔案上傳的伺服器根目錄下的upload資料夾
            File file = new File(uploadPath, filename);
            FileUtils.copyInputStreamToFile(inputStream, file);
            // 返回圖片訪問路徑
            String url = request.getScheme() + "://" + request.getServerName()
                    + ":" + request.getServerPort() + "/upload/" + filename;
            
            String [] str = {url};
            WangEditor we = new WangEditor(str);
            return we;
        } catch (IOException e) {
            log.error("上傳檔案失敗", e);
        }
        return null;
 
    }

效果如下所示:

就是這麼的簡單方便,三分鐘即可上手使用,在眾多的富文字編輯器中,尤其是帶圖片上傳的需求,這款真是當之無愧的存在,簡單輕便soeasy。

注:

關注「程式設計微刊」公眾號 ,在微信後臺回覆「領取資源」,獲取IT資源300G乾貨大全。公眾號回覆“1”,拉你程序序員技術討論群。

相關推薦

輕量級web文字編輯圖片

業務需求: 通過後臺編輯文章和圖片,上傳到前端介面,展示新聞訊息模組。這個時候,需要一款簡潔的編輯器,百度編輯器是最常用的一種,但是功能太過於複雜,而wangEditor - 輕量級web富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器,值得擁有。 wa

JAVA 整合 Ueditor 百度文字編輯自定義路徑

開發環境:一個簡單的web專案中,用百度富文字編輯器 ueditor 實現圖片和檔案的上傳(可自定義上傳路徑)需要使用到的2個檔案如下(官網上下載):1,ueditor-1.4.3.3.zip2,ueditor1_4_3_3-utf8-jsp.zip所需jar包:配置完成後,

CI框架summernote文字編輯的使用及圖片

1.下載summernote外掛 再要使用的使用引入這幾個檔案即可 <link href="<?php echo base_url();?>assets/app/css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">

uni-app呼叫原生的檔案系統管理選取附件

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="tex

重構wangEditorweb文字編輯,歡迎指正!

1. 前言 之所以有這次重構,是因以下原因。 第一,bootstrap。做一個小小的web富文字編輯器,就依賴於bootstrap,未免有點小題大做。當時依賴於bootstrap是為了省去我繪製按鈕、下拉框和彈出框的時間,有些偷懶。因此,本次重構棄用bootstrap

web文字編輯收集

1、UEditor 百度的。 優點:外掛多,基本滿足各種需求,類似貼吧中的回覆介面。 缺點:不再維護,文件極少,使用並不普遍,圖片只能上傳到本地伺服器,如果需要上傳到其他伺服器需要改動原始碼,較為難辦,載入速度慢。 總結:小專案,可以用用,不推薦使用。 2、kindeditor 介面類似百度,效

文字編輯UEditor的使用

富文字編輯器(UEditor)       在平時開發Java Web專案的時候,往往會使用第三方外掛來幫助我們更快的實現功能。       這裡教大家使用百度開源的富文字編輯器(UEditor)來幫助我們更好的編寫文字。 官網下載地址 這裡下載最新版

Vue專案中使用ueditor文字編輯

vue專案打包後引入的ueditor富文字編輯器,資源載入不正確 如下圖:一個個解決: 1:ueditor.css ①如果用的是ueditor.all.js,在29336行修改如下: ②如果用的是ueditor.all.mai

Web 文字編輯 Neditor 2.1.12 釋出,支援遠端圖片本地化

   BUG 修復 解決貼上圖片時提交的圖片表單名稱為 undefined 的問題 (by @ciey ) 注:此版本支援遠端圖片本地化(預設開啟)【關閉請在: config 裡設定 catchRemoteImageEnable】 更新內容: 更新

Web 文字編輯 Neditor 2.1.13 釋出,修復字型顯示區顯示“none” 的問題

   更新內容: BUG 修復 修復 字型大小和字型選擇後顯示區顯示 none 的問題 #105 Demo:  https://demo.neditor.notadd.com/ Neditor 是基於 ueditor 的更現代化的富文字編

在Vue專案使用quill-editor樣式編輯更改插入圖片和視訊 運用vue-quilt-editor編寫文字編輯 自定義圖片路徑 獲取後臺返回路徑

一、首先在main.js  引入 vue-quilt-editorimport VueQuillEditor from 'vue-quill-editor'import 'quill/dist/quill.core.css'import 'quill/dist/quill.s

SpringBoot整合文字編輯UEditor

UEditro是一款比較好用的富文字編輯器,所謂的富文字編輯器就是和伺服器互動的資料不是普通的字串檔案,而是一些內容包含比較廣的字串,一般是指的html頁面,目前比較好用的是百度的UEditor,到官方網站下載: http://ueditor.baidu.co

百度文字編輯ueditor自定義介面路徑

只針對 1.4.3 jsp 版本其他版本估計也差不多,剛開始上傳圖片各種錯誤,又是配路徑又是導jar包啥的,這都不說了,作為一個前端真的不太會玩這些java的東西,剛好同事搞過,把他的搬來用,他的版本很低1.3.6,高了半天上傳上去是自定義的一個資料夾,就存在t

wangEditor 基於javascript和css開發的 Web文字編輯, 輕量、簡潔、易用、開源免費

介紹 wangEditor —— 輕量級 web 富文字編輯器,配置方便,使用簡單。支援 IE10+ 瀏覽器。 介面效果圖: 使用方法: 1、常規使用方法 注意,以下程式碼中無需引用任何 C

文字編輯php

首先去ueditor的官網下載PHP版本的檔案,網站地址:http://ueditor.baidu.com/website/download.html 然後解壓出來 改名為ueditor 並放到專案檔案中。 前端程式碼: 1、引入ueditor的相關檔案 <script src="ueditor

使用wangEditor輕量級文字編輯,來批量圖片

1.wangEditor編輯器 wangEditor官網 相對其他幾個編輯器來說, wangEditor還是比較功能齊全的, 而且用起來上手也快. 缺點就是表情不多, 就內建了幾個新浪表情和emoji, 不過可以自己拓展 , 然後選單的圖示也不太好看

10個免費的javascript文字編輯jQuery and non-jQuery

http://www.cnblogs.com/ywqu/archive/2009/12/25/1631766.html 祝願園子裡的朋友聖誕節快樂。 本文介紹了10個免費易用富文字編輯器(rich text editors,RTE),其中5個是Jquery外掛,另外5個是非Jquery富文字編輯器 簡介 J

WangEditor文字編輯圖片

wangEditor基於javascript和css開發的 Web富文字編輯器, 輕量、簡潔、易用、開源免費 效果展示: 一:引入js <script type="text/javascript" src="./js/jquery.min.js"&

web文字編輯的選擇のxheditor

1.FCKeditor 他怎麼樣,我就不用多說了,網上多的很,不過有近300K的體積~~~ 2.xheditor 這個控制元件好象用的人比較少,不過看起來感覺不錯!JS+CSS+圖片一共有50K,小啊,中文! 3.tinyMCE 網上的評價很高,值得一試,不過比較大,近200K了,中文! 4.xinha

jquery wysiwyg.js實現文字編輯框,複製圖片文字

wysiwyg.js是一款十分強大的、所見即所得的jQuery富文字編輯器外掛。wysiwyg.js富文字編輯器體積小,支援選擇、鍵盤、佔位等眾多事件。而且該富文字編輯器的相容性十分好,甚至相容IE