asp.net項目ckeditor+ckfinder實現圖片上傳


下面為詳細的c#配置方法

CKEditor和CKFinder的最新版可以到官方網站(http://cksource.com)上下載獲得。
把以上兩個資源放到網站的根目錄: /CKEditor 和 /CKFinder (不區分大小寫)
在頁面使用 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>

二、

      還可以做成控件,放到工具箱:

          1、右擊一個選項卡點(選則項...)

          2、點擊(瀏(覽B)...)

          3、找到你項目bin文件夾下的(CKEditor.NET.dll)確定就行

    然后如果用到這個就可以直接拖拽到你的頁面上,跟拖拽textbox或lable一樣

 


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(這個我是在VS里的解決方案里面添加已有的項目打開的,打開的是CKFinder.Net.csproj然后按着下面的修改弄的)


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;(開始提示sExtension沒定義什么的,后來查找了下sExtension,把這段代碼放到有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; 不推薦使用
}

自己遇到的問題:缺少Design數據集,然后引用了一下,提示我好多重復的東西(經檢查是因為在修改自定義文件名時,重復引用了ckfinder.dll,刪掉了引用里面的ckfinder.dll可以了)

經實踐這個教程可以用,有問題的朋友可以留言


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM