扩展FCKeditor网页编辑器

本文介绍如何在FCKeditor中优化文件上传路径,并自动创建按日期分类的文件夹,同时解决了中文乱码问题,并提供了一种自动重命名上传文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

打开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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值