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目录的相对路径

     

  • 相关阅读:
    老鼠走迷宫
    堆栈的应用 问题还未解决
    计数排序与基数排序
    C++类的描述
    选择排序 冒泡排序 插入排序
    计算名次
    多项式求值 n维多项式 Horner解法
    003_sublime如何实时预览markdown
    002_git下载的源码怎么打成jar包呢?
    001_idea常用插件
  • 原文地址:https://www.cnblogs.com/12go/p/3504889.html
Copyright © 2011-2022 走看看