CKEditor和CKFinder 解决图片上传

本文详细介绍了如何在网站中集成CKEditor和CKFinder,并实现了上传功能。通过配置CKFinder,用户可以实现文件上传,并提供了修改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, 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的。

如果上传文件出现错误:因为安全原因,文件不可浏览. 请联系系统管理员并检查CKFinder配置文件.

需要修改config.ascx文件中

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

public override bool CheckAuthentication()
{

// 窗体验证时用
 return Request.IsAuthenticated;

//reture true; 不推荐使用
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值