.net_ckeditor+ckfinder的圖片上傳配置

CKEditor和CKFinder的最新版能夠到官方網站(http://cksource.com)上下載得到。 javascript

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

在頁面使用 CKEditor:html

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

        <script type="text/javascript">web

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

        </script>dom

CKEditor 自己不自帶上傳功能,因此須要配合CKFinder才能夠實現上傳ide

第一步:網站須要引用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的。

若是上傳文件出現錯誤:由於安全緣由,文件不可瀏覽. 請聯繫系統管理員並檢查CKFinder配置文件.

須要修改config.ascx文件中

public override bool CheckAuthentication()
{
reture false;
}
修改成:

public override bool CheckAuthentication()
{

// 窗體驗證時用
 return Request.IsAuthenticated;

//reture true; 不推薦使用
}

 

 

 

 

CKFinder 的使用準備工做
1. 下載CKFinder的Asp.NET版,將其解壓到Web根目錄下
2. 複製/bin/Release目錄下的ckfinder.dll文件至站點bin目錄
3. 精簡目錄:
_samples文件夾(示例文件,能夠刪除)
_source文件夾(源程序文件,能夠刪除)
CKFinder的配置
1. 打開 」 \ckfinder\config.ascx 「,爲SetConfig方法中的 BaseUrl 指定默認路徑湘潭網站建設,如:
// 以userfiles 爲默認路徑,其目錄下會自動生成images、flash等子目錄。
BaseUrl = 」 ~/ckfinder/userfiles/」;
// NOTE:注意「 ~/ 」。
2. 與CKEditor集成
打開CKEditor目錄中的config.js文件在function 函數中
複製代碼 代碼以下:
// 自定義 CKEditor 樣式
CKEDITOR.editorConfig = function(config) {
……
};
加入以下內容:
複製代碼 代碼以下:
// 在 CKEditor 中集成 CKFinder,注意 ckfinder 的路徑選擇要正確。
config.filebrowserBrowseUrl = location.hash + ‘/ckfinder/ckfinder.html’;
config.filebrowserImageBrowseUrl = location.hash + ‘/ckfinder/ckfinder.html?Type=Images’;
config.filebrowserFlashBrowseUrl = location.hash+’/ckfinder/ckfinder.html?Type=Flash’;
config.filebrowserUploadUrl = location.hash + ‘/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files’;
config.filebrowserImageUploadUrl = location.hash + ‘/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images’;
config.filebrowserFlashUploadUrl = location.hash + ‘/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash’;
// config.filebrowserWindowWidth = ’800′;
// config.filebrowserWindowHeight = ’500′;

 

CKFinder的應用
1. 在工具欄中添加站點根目錄bin目錄中的ckfinder.dll控件
2. 拖放控件到Web頁面
3. 修改CKFinder控件屬性BasePath爲ckfinder目錄的相對路徑
常見問題
1. 症狀:由於安全緣由,文件不可瀏覽。請聯繫系統管理員並檢查CKFinder配置文件。
緣由:未設置用戶身份驗證或者用戶未登陸。
語句:
複製代碼 代碼以下:
public override bool CheckAuthentication()
{
return false;
}

 

解決:在CKFinder的config.ascx文件中修改public override bool CheckAuthentication() 加入用戶身份權限驗證方法。
2. 症狀:未知錯誤
緣由:設置不進行用戶身份驗證,可是 BaseUrl 路徑不對。
語句:
複製代碼 代碼以下:
public override bool CheckAuthentication()
{
return true ;
}

 

解決:在CKFinder的config.ascx文件中的public override void SetConfig() 修改

 

// 以userfiles 爲默認路徑,其目錄下會自動生成images、flash等子目錄。BaseUrl = 」 ~/ckfinder/userfiles/」;// NOTE:注意「 ~/ 」。3. 症狀:訪問帶有CKFinder的頁面時報錯「HTTP 錯誤 404 – Not Found」解決:修改CKFinder控件的BasePath屬性爲ckfinder目錄的相對路徑

相關文章
相關標籤/搜索