1. 程式人生 > >C# ckeditor+ckfinder的圖片上傳配置

C# ckeditor+ckfinder的圖片上傳配置

CKEditor 3.5, released on 17 December 2010 官方下載

CKFinder Current version: 2.0.1, updated 17.08.2010 官方下載 選擇asp.net

把以上兩個資源放到網站的根目錄: /CKEditor 和 /CKFinder (不區分大小寫)

aspx 頁面直接使用 CKEditor

<textarea cols="80" id="prcontent" name="content" rows="50">hello world!</textarea>

        <script type="text/javascript">

            CKEDITOR.replace('content', { height: 200, width: 520 });

        </script>

CKEditor 本身不自帶上傳功能,所以需要配合CKFinder才可以實現上傳

第一步:網站需要引用CKFinder的dll(目錄:/CKFinder/bin/Release/CKFinder.dll)

第二步:配置CKEditor的config.js (目錄:/CKEditor/config.js ) 在CKEDITOR.editorConfig函式里加上,不需要的功能可以去掉


    config.filebrowserBrowseUrl= '/ckfinder/ckfinder.html'; //上傳檔案時瀏覽服務資料夾

    config.filebrowserImageBrowseUrl= '/ckfinder/ckfinder.html?Type=Images'; //上傳圖片時瀏覽服務資料夾

    config.filebrowserFlashBrowseUrl= '/ckfinder/ckfinder.html?Type=Flash';  //上傳Flash時瀏覽服務資料夾

    config.filebrowserUploadUrl = '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files'; //上傳檔案按鈕(標籤)

    config.filebrowserImageUploadUrl= '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images'; //上傳圖片按鈕(標籤)

    config.filebrowserFlashUploadUrl= '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash'; //上傳Flash按鈕(標籤)

配置完成後CKEditor 就帶有上傳功能了,但假如上傳圖片時,圖片的檔案是用原來圖片的名字,想改為隨機檔名呢,怎麼辦?接著看第三步。

第三步:修改CKFinder的原始碼。CKFinder自帶有原始碼,目錄:/CKFinde/_source

在VS裡新建一個 現在的專案 指向CKFinde/_source/CKFinder.Net.sln

1) 開啟/Settings/ConfigFile.cs檔案

定位27行,新增一個屬性:public bool RandomReName; //隨機重新命名

定位67行,給剛才的屬性賦值:RandomReName = true; //預設值為true

儲存關閉檔案

2) 開啟/Connector/Config.cs檔案

定位62行,新增一個屬性:

        public bool RandomReName

        {

            get { return Settings.ConfigFile.Current.RandomReName; }

        }

儲存關閉檔案

3) 開啟/Connector/CommandHandlers/FileUploadCommandHandler.cs檔案

定位64行,新增一句判斷程式碼:

if ( Config.Current.RandomReName)  //使用隨機名

     sFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + sExtension;
儲存關閉檔案 4) 重新生成專案,把/ckfinder/_source/bin/Debug/CKFinder.dll覆蓋/ckfinder/bin/Release/CKFinder.dll或者網站專案去掉之前加入的引用再重新從CKFinder.Net專案裡的Dll 最後一步:開啟/ckfinder/config.ascx 定位42行,新增一屬性:(其實這個加不加都可以的,因為之前有設定預設值,但使用原名時一定要設定為false)

        //上傳完畢後使用隨機檔名

        RandomReName = true;

儲存關閉

好了,到此已經配置成功了,CKEditor 可以有上傳功能了。其它的功能的設定,有空再繼續研究~

還要提醒一句:CKEditor 和 CKFinder 資料夾裡有很多不需要的東西,例如名字帶有下劃線前輟的,.net專案不需要php,asp的。