前一段时间项目的需要,自己一个人弄了一下FCK 编辑器,原来用的是2点的版本,不安全所以干脆到官网下载个,官网推荐是3.6.2 最新的好像是4点多。
然后自己百度了一下用法,网上各种版本各种做法没一个是全的,今天自己写一个防止以后用。
首先官网下载一个http://ckeditor.com 然后里面的上传和编辑器是分开的。ckeditor和ckfinder
重点讲的是附件上传。
先找到ckfinder/config.ascx文件。里面有一个方法
public override bool CheckAuthentication()
{
//里面英语的意思是做验证的,如果是本机测试return true; 就行了
//如果上线就加上你自己的登陆判断就行了。
}
里面最难的就是配置上传附近的路径,而项目的要求是按照时间时间命名,如2014/12/19/20141219162455324.jpg
如果是需要这种按照日期走就必须得改它源码了。
代码所示,这只是创建2014/12/19/ 文件目录
public override void SetConfig()
{
string name = DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Day.ToString();
string path = Server.MapPath("../../") + "\\" + name;
if (!Directory.Exists(path))
{
DirectoryInfo folder = Directory.CreateDirectory(path);
string time = Convert.ToString(Directory.GetCreationTime(path));
string foldername = name.Substring(name.LastIndexOf("\\") + 1);
}
BaseUrl = "~/" + name;
}
然后再弄附件按照日期命名。
这得找到ckfinder\_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
搞定!