(本文原本是发在QQ空间里,今天突然看到,就搞到csdn中了,希望能让更多初学者看到,嘿嘿,高手如果觉得不好就不要砸鸡蛋了,呵呵)
最近都在玩fckeditor在线编辑器,在.net中的配置什么的没啥好说的,在网上一搜一大堆,在使用的过程中遇到了,就是上传图片和flash的时候,总是传到在配置文件中写的那路径的跟目录下,没办法自动分文件夹(如:image、flash)存放,还有在上传的时候没办法自动修改文件名,就这两问题差点没被玩死.......
先来说说,上传的时候自动修改文件名,我使用的是FCKeditor.Net_2.6.3的.net组件和FCKeditor_2.6.5版本,先用vs05打开FCKeditor.Net_2.6.3,找到目录底下的FileBrowser/FileWorkerBase.cs文件,并找到这文件下的SanitizeFileName()方法,将原本的代码改为以下代码,当然,要怎么命名随个人的意思,嘿嘿,我的是按服务器时间再加上一个随机数:
private string SanitizeFileName( string fileName )
{
// Replace dots in the name with underscores (only one dot can be there... security issue).
if (Config.ForceSingleExtension)
{
Random ran = new Random();
string random = ran.Next(0, 10).ToString();
fileName = DateTime.Now.ToString().Replace("-", "").Replace(" ", "").Replace(":", "") + random + System.IO.Path.GetExtension(fileName).ToLower();//重命名文件再加上后缀名
fileName = Regex.Replace(fileName, @"/.(?![^.]*$)", "_", RegexOptions.None);
}
// Remove / / | : ? * " < >
return Regex.Replace( fileName, @"[///|:?*""<>/p{C}]", "_", RegexOptions.None );//将重命名后的文件名返回
}
好了,这样再编译一下,将生成的.dll组件重新引用到项目中。
接着是让传上去的图片自动分文件夹,我这里是将图片和flash分开,然后再按日期将上传的文件放到日期的文件夹下,这个要怎么放也是随个人意思。打开FCKeditor_2.6.5,找到文件fckeditor/editor/filemanager/connectors/aspx/config.ascx
并找到方法SetConfig()
以下为修改的代码(注:我这里只需要上传flash和图片,所以只修改这两种类型的,当然其他想修改的也可以自由修改,这里就只举一下图片的例子):
将找到:
TypeConfig[ "Image" ].QuickUploadPath = "%UserFilesPath%";
并修改为:
TypeConfig[ "Image" ].QuickUploadPath = "%UserFilesPath%image/" + DateTime.Now.ToShortDateString().Replace("-", "") + "/";
找到:
TypeConfig[ "Image" ].QuickUploadAbsolutePath = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%" );
并修改为:
TypeConfig[ "Image" ].QuickUploadAbsolutePath = (UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%image");
保存,这样就OK了!在网上看到,好像不用这样修改就可以自动分文件夹,不过我一直不知道怎么弄,实在是火大,所以只能用这种土办法了。如果其他人有其他什么好方法的,说出来大家分享一下哈!!
嘿嘿!大功告成!可以好好的睡一觉咯........