1. 程式人生 > >UEditor的配置和使用(單獨圖片與檔案上傳)

UEditor的配置和使用(單獨圖片與檔案上傳)

UEditor配置與使用

一.準備

1.下載
前往UEditor官網下載最新版,分為php,asp,jsp和.net四種版本,當然也可以直接下載完整版,這裡以jsp為例

2.部署
直接拷貝ueditor目錄到專案根目錄下,開啟ueditor/jsp/lib,將裡面的jar包拷貝到WEB-INF/lib目錄下
這裡要注意和原本的jar包之前可能會發生版本衝突,請自行選擇

3.測試
按照下列程式碼,引入ueditor.config.js和ueditor.all.js兩個檔案,初始化文字或者定義文字域都可以,例項化編輯器.如果看到ueditor編輯器說明部署成功.

    <script
id="container" name="content" type="text/plain">
這裡寫你的初始化內容 </script> <!-- 配置檔案 --> <script type="text/javascript" src="ueditor.config.js"></script> <!-- 編輯器原始碼檔案 --> <script type="text/javascript" src="ueditor.all.js"></script> <!-- 例項化編輯器 -->
<script type="text/javascript"> var ue = UE.getEditor('container'); </script>

二.基本使用

基本使用文件已經說的很清楚了,不在累述

三.常用使用配置

1.圖片上傳配置
ueditor/jsp/config.json,這裡是一些配置資訊,如果你希望使用圖片上傳功需要對此做一些配置.

//這裡是配置圖片的訪問路徑,一般會填寫工程的專案名稱,比如/News
"imageUrlPrefix": "",

//這裡是配置圖片的是圖片的儲存路徑,建議改成根目錄下某個資料夾,便於管理,例如/resource/image/,後面的是檔名,這個看原始碼下的註釋就好了
"imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",

2.調整編輯器層次
在使用easyui+ueditor的時候,經常點選按鈕但是沒有視窗,這是因為其他視窗遮擋了ueditor的視窗,可以通過調整編輯器層次來解決,開啟ueditor/ueditor.config.js

//這裡是調整編輯器層次,預設為990,將之改成9999即可
,zIndex : 9999,

3.單獨使用ueditor的圖片上傳
很多時候我們只需要使用到圖片上傳功能,這時候可以進行一下配置
首先開啟uditor/dialogs/image/image.js,定位editor.execCommand,做以下修改

editor.fireEvent('beforeinsertimage',list);//增加這句,不然無法觸發事件
editor.execCommand('insertimage', list);

然後,建一個demo.jsp,如下

<!-- 略去引入js -->
<input  type="text" id="image" name="image">
<a href="javascript:void(0)" onclick="upImage()">上傳圖片</a><br>
<img id="showImage" src="style/img/noimg.png">

<!-- 定義一個新編輯器,但是會隱藏它,因為只會用到圖片上傳 -->
<textarea id="uploadImage"></textarea>

<script type="text/javascript">
    var _editor = UE.getEditor("uploadImage",{
        initialFrameWidth:800,
        initialFrameHeight:300,
    });

    _editor.ready(function (){
        //設定編輯器不可用(事實上不可以設定不可用...所以註釋掉,以觀後效)
        //_editor.setDisabled();

        //隱藏編輯器,因為只使用上傳功能
        _editor.hide();

        //偵聽圖片上傳
    _editor.addListener('beforeInsertImage',function(t,arg){
            //將圖片地址賦給input
            $("#image").attr("value",arg[0].src);
            //將圖片地址賦給img的src,實現預覽
            $("#showImage").attr("src",arg[0].src);
        });
    });
    //上傳dialog
    function upImage(){
        var myImage = _editor.getDialog("insertimage");
        myImage.open();
    }
</script>

這裡可能會出現能上傳圖片,也能在預覽裡看見,但是無法input無法獲取圖片地址,可以嘗試

//$("#image").attr("value",arg[0].src);//註釋掉這行
$("#image").val(arg[0].src);  //新增這行....感覺一樣,但是有時能解決

4.單獨使用ueditor的檔案上傳
首先,在ueditor/dialogs/attachment/attachment.js裡,定位editor.execCommand,做以下修改

editor.fireEvent('afterUpfile', filesList);//新增這句話
editor.execCommand('insertfile', list);

然後,建立demo.jsp,如下

<!-- 略去引入js -->

檔案:<input type="text" id="file" />
<a href="javascript:void(0);" onclick="upFiles();">上傳檔案</a>

<!-- 定義一個新編輯器,但是會隱藏它,因為只會用到檔案上傳 -->
<textarea id="uploadFile"></textarea>

<script type="text/javascript">
    var _editor = UE.getEditor("uploadFile",{
        initialFrameWidth:800,
        initialFrameHeight:300,
    });
    _editor.ready(function () {
        //設定編輯器不可用(事實上不可以設定不可用...所以註釋掉,以觀後效)
        //_editor.setDisabled();
        //隱藏編輯器,因為不會用到這個編輯器例項,所以要隱藏
        _editor.hide();
        //偵聽檔案上傳
        _editor.addListener('afterUpfile', function (t, arg) {
            $("#file").attr("value", _editor.options.filePath + arg[0].url);
        })
    });
    //彈出檔案上傳的對話方塊
    function upFiles() {
        var myFiles = _editor.getDialog("attachment");
        myFiles.open();
    }
</script>

5.使用ueditor圖片的線上管理功能
使用過圖片上傳會知道UEditor還有一個線上管理功能,就是可以看到上傳的圖片列表,但是事實上這個功能有個bug

building