扩展FCKeditor网页编辑器

-增加上传路径按日期分文件夹
-解决中文乱码问题

有时间补上~纪念一下,第一次改开源文件~

惭愧呀,一年前改的方法,今天又用上,又看了下源码才想起来,赶紧给记上吧,为当年偷懒付出了代价。

打开FCK源代码找到,net.fckeditor.handlers.ResourceTypeHandler,这个类中的

paths.put(FILE, PropertiesLoader.getProperty("connector.resourceType.file.path"));
paths.put(IMAGE, PropertiesLoader.getProperty("connector.resourceType.image.path")+ File.separator + createDir(getNowTimeStr()));
paths.put(FLASH, PropertiesLoader.getProperty("connector.resourceType.flash.path"));
paths.put(MEDIA, PropertiesLoader.getProperty("connector.resourceType.media.path"));

是来确定文件保存路径的,前面 PropertiesLoader.getProperty("connector.resourceType.image.path")显然是从默认的配置文件中来读取默认文件夹,默认配置文件在net/fckeditor/handlers/default.properties

如我上面所改,添加了
PropertiesLoader.getProperty("connector.resourceType.image.path")+ File.separator + createDir(getNowTimeStr()));

那么以后再上传图片类,会自动加上以时间依据创建文件夹的下面,这样更改使用户上传文件更有条理,也可以做更多扩展,下面是建议文件夹代码


public static void createDir(String fullPath)
    {
        fullPath = fullPath.replaceAll("\\*","/");
        String paths[] = fullPath.split("/");
        StringBuilder sb = new StringBuilder();

        for(int i=0;i<paths.length;i++)
        {
            sb.append(paths[i]+"/");
            File temp = new File(sb.toString());
            if (!temp.exists()) {
                temp.mkdirs();
            }
        }
    }
   
    public static Date getNowTime()
    {
        return Calendar.getInstance().getTime();
    }

    public static String getNowTimeStr()
    {
       return DateToStr(getNowTime(),"yyyyMM/dd");
    }

    public static String DateToStr(java.util.Date date,String pattern) {
        if( date == null ) return "";
        SimpleDateFormat ft = new SimpleDateFormat(pattern);
        return ft.format(date);
    }


今天又发现一个问题,很多朋友希望将文件自动重命名成日期的形式。
只要修改net.fckeditor.connector.ConnectorServlet中dopost()方法中的
String rawName = UtilsFile.sanitizeFileName(uplFile.getName());
下面添加一个自定义的renameFilename方法即可了。
/System.out.println("--------->rawName: " + rawName);
rawName = renameFilename(rawName);

//方法实现
public String renameFilename(String filename)
{
String suffix = filename.substring(filename.lastIndexOf("."));
return String.valueOf(new Date().getTime()) + suffix;
}

你可能感兴趣的:(.net,fckeditor,Flash)