搞定fckeditor自动分文件夹(.net)

来源:互联网 发布:阿里云的cdn怎么用 编辑:程序博客网 时间:2024/05/16 12:14

(本文原本是发在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了!在网上看到,好像不用这样修改就可以自动分文件夹,不过我一直不知道怎么弄,实在是火大,所以只能用这种土办法了。如果其他人有其他什么好方法的,说出来大家分享一下哈!!

嘿嘿!大功告成!可以好好的睡一觉咯........