百度uediter使用-圖片上傳

目錄:

  1. 前言
  2. 開發環境
  3. 知識點
  4. 初始使用
  5. 自定義工具欄
  6. 設置和讀取編輯器內容
  7. 文件上傳
  8. ueditor加水印

------------------------------------------------

下載地址在尾部

1.前言:之前一直用KingEditor富文本編輯器,在國產編輯器中算是頂尖的插件。但是這個編輯器集成度較差,也很久沒有更新了,今天學習百度產品UEeditor使用!

2.開發環境:VS2013+MVC5

3.知識點:上傳加水印功能

下載編輯器

各自選擇自己語言的版本。我這裏是.net版本就選擇.net版本 UTF-8

同時可以選擇Mini版本,Mini版本在日常也是夠用的。開發版功能比較齊全,包括在線編輯WORD,地圖,圖表等功能。如果是普通的,比如博客類的,回覆類使用的,使用mini版比較何時。

4.初次開始:

新建MVC5項目名爲UEeditorForMVC,並解壓下載的ueditor到Script文件夾下,utf8-net改名爲UEeditor

初始部署使用:修改index.cshtml

@{
    ViewBag.Title = "Home Page";
}
<script src="~/Scripts/ueditor/ueditor.config.js"></script>
<script src="~/Scripts/ueditor/ueditor.all.min.js"></script>
<script>
    //加載編輯器
    var ue = UE.getEditor('container', {
    });
</script>
<script id="container" name="content" style=" height: 228px; " type="text/plain">
</script>

 

 

運行後出現效果,證明配置已經成功!

5.配置工具欄

有時候我們需要自定義工具欄,2個地方可以進行配置,一個是全局的配置文件ueitor.config.js,修改這個文件將導致整站所有編輯器一併修改

單獨配置在加載編輯器時候觸發:

<script>
    //加載編輯器
    var ue = UE.getEditor('container', {
        toolbars: [[
                'fullscreen', 'source',
                'bold', 'italic', 'underline', 'forecolor', 'insertorderedlist',
               'fontfamily', 'fontsize',
                'justifyleft', 'justifycenter',
                'link', 'unlink',
                'simpleupload', 'snapscreen'
        ]]
    });
</script>

這個加載可以發現與config.js是對應的。包括接口路徑,主題等,都可以單獨配置

效果如下,我只配置了最常用的工具欄

6.設置和讀取編輯器內容

 ue.ready(function() {
        //設置編輯器的內容
        ue.setContent('hello');
        //獲取html內容,返回: <p>hello</p>
        var html = ue.getContent();
        //獲取純文本內容,返回: hello
        var txt = ue.getContentTxt();
    });

可以設置編輯器的內容。比如文章可以獲取後調用

ue.setContent('hello');//爲編輯器設置內容

具體參考官方文檔

7.文件上傳

文件上傳是本文的主要內容,我們必須瞭解一下接口。

controller.ashx 這是一個處理文件,繼承IHttpHandler接口。所有文件的上傳必須經過這個文件處理

App_Code文件夾下的UploadHandler.cs爲上傳處理文件。

執行順序由controller.ashx判斷處理後調用UploadHandler。

初始上傳會成功,但是沒有圖片顯示

這是因爲路徑文件造成

研究發現net根目錄下有文件config.json。這個是一個json格式的配置文件

這裏可以配置所有上傳時候的參數包括,上傳路徑,文件命名,遠程抓取路徑等

我們這裏只修改第11行代碼即可

 "imageUrlPrefix": "/Scripts/ueditor/net/", /* 圖片訪問路徑前綴 */

修改上傳路徑:在62行

8.加入水印

既然我們知道修改文件爲上傳文件,那麼修改上傳處理邏輯可以加入水印

添加一個水印類

/// <summary>

/// 文字水印
/// </summary>
/// <param name="imgPath">服務器圖片相對路徑</param>
/// <param name="filename">保存文件名</param>
/// <param name="watermarkText">水印文字</param>
/// <param name="watermarkStatus">圖片水印位置 0=不使用 1=左上 2=中上 3=右上 4=左中 9=右下</param>
/// <param name="quality">附加水印圖片質量,0-100</param>
/// <param name="fontname">字體</param>
/// <param name="fontsize">字體大小</param>

AddImageSignPic方法參數解析

這樣我們修改自帶的UploadHandler.cs第68行try方法爲

 


 

保存後調用寫水印函數,完整的

 try
        {
            if (!Directory.Exists(Path.GetDirectoryName(localPath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(localPath));
            }
            file.SaveAs(localPath);
            WaterMark.AddImageSignText(localPath, localPath,
                           "ymnets", 9,
                          80, "Tahoma", 12);

            //WaterMark.AddImageSignPic(serverFileName, serverFileName,
            //              "傳入水印圖片路徑", 9,
            //              80, 5);
            Result.Url = savePath;
            Result.State = UploadState.Success;
        }

 UploadHandler

這次我們再次上傳預覽效果

成功生成一個文字水印。這個水印類也包含了圖片LOGO形式的

 WaterMark.AddImageSignPic(serverFileName, serverFileName,
             "傳入水印圖片路徑", 9,
              80, 5);

注掉文字的替換這句:

我下載了博客園的LOGO,那麼結果顯然

模糊度和圖片透明度都有關係.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章