1、官方网站(http://cksource.com)上下载获得CKEditor和CKFinder的最新版。这里是我上传的我是用的版本及例子。
2、两个文件夹东西真的是很多,内容很全面,但是我们用的的东西不是全部,所以是挑选我们需要的东西添加到项目中去。这个是项目中CKEditor和CKFinder包含文件
3、在前台添加代码
代码如下 | 复制代码 |
|
4、CKEditor 本身不自带上传功能,所以需要配合CKFinder才可以实现上传。
(1)、项目添加引用CKFinder.dll
(2)、配置CKEditor的config.js (目录:/CKEditor/config.js ) 在CKEDITOR.editorConfig函数里加上,不需要的功能可以去掉
代码如下:
代码如下 | 复制代码 |
CKEDITOR.editorConfig = function (config) { var ckfinderPath = "/JS"; //注意这个地方的问题,JS是包含CKEditor和CKFinder的文件夹 |
配置完成后CKEditor 就带有上传功能了,但假如上传图片,flash,以及其他文件时,文件如果用原来文件的名字,可能会出现重名的问题,
所以就要将文件名改为随机文件名。
5、修改CKFinder的源码。CKFinder自带有源码,目录:/CKFinde/_source,打开项目,
(1)、 打开/Settings/ConfigFile.cs文件,修改的地方,请看特殊标记
代码如下 | 复制代码 |
using System; namespace CKFinder.Settings public string DefaultResourceTypes; private Thumbnails _Thumbnails; private string[] _HideFolders; internal Regex HideFoldersRegex; public string RoleSessionVar; private static ConfigFile _Current; public ConfigFile() this.HideFolders = new string[ 0 ]; LicenseName = ""; |
(2)、打开/Connector/Config.cs文件,
定位60行左右,添加一个属性:
代码如下 | 复制代码 |
public bool RandomReName { get { return Settings.ConfigFile.Current.RandomReName; } } |
(3)、打开/Connector/CommandHandlers/FileUploadCommandHandler.cs文件,添加一句判断代码,下面显示的是部分代码,添加的代码已经标注
代码如下 | 复制代码 |
namespace CKFinder.Connector.CommandHandlers try if ( !this.CurrentFolder.CheckAcl( AccessControlRules.FileUpload ) ) HttpPostedFile oFile = null; if ( oFile != null ) if ( Config.Current.CheckDoubleExtension ) sUnsafeFileName = sFileName; // Replace dots in the name with underscores (only one dot can be there... security issue). if ( sFileName != sUnsafeFileName ) if ( Connector.CheckFileName( sFileName ) && !Config.Current.CheckIsHiddenFile( sFileName ) ) string sExtension = System.IO.Path.GetExtension( sFileName ); |
4) 重新生成项目,在bin文件夹中,找到CKFinder.dll,对于第一个项目重新添加对于CKFinder.dll的引用,最后一步:打开/ckfinder/config.ascx
在SetConfig()中,添加一属性:(其实这个加不加都可以的,因为之前有设置默认值,但使用原名时一定要设置为false)
RandomReName = true;//上传完毕后使用随机文件名
好了,到此已经配置成功了