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的。