zoukankan      html  css  js  c++  java
  • .net_ckeditor+ckfinder的图片上传配置

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

    如果上传文件出现错误:因为安全原因,文件不可浏览. 请联系系统管理员并检查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. 打开 ” ckfinderconfig.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目录的相对路径

     

  • 相关阅读:
    HDU5418.Victor and World(状压DP)
    POJ2686 Traveling by Stagecoach(状压DP)
    POJ3254Corn Fields(状压DP)
    HDU5407.CRB and Candies(数论)
    CodeForces 352D. Jeff and Furik
    CodeForces 352C. Jeff and Rounding(贪心)
    LightOj 1282 Leading and Trailing
    Ural 1057. Amount of Degrees(数位DP)
    HDU 2089 不要62 (数位DP)
    HDU5366 The mook jong (DP)
  • 原文地址:https://www.cnblogs.com/12go/p/3504889.html
Copyright © 2011-2022 走看看