以下介绍修改的办法。
下载FCKeditor的JAVA源码fckeditor-java-2.6-src.zip,在解压后的目录里找到/java-core/src/main/java/net/fckeditor/connector/Dispatcher.java。在项目中新建包net.fckeditor.connector,把上述JAVA文件复制到该目录下。找到258行String fileName = FilenameUtils.getName(uplFile.getName());这个就是上传文件的文件件名,可以按你的需求对重命名这个文件。(不同的版本代码所在位置可能会有所不同,但FilenameUtils.getName这个方法一般不会变,找不到的时候在源码中搜索一下就可以了)。
一般来说可以按以下三种规则来重命名文件:
1.生成32位的UUID,开始时候我也是用这个方法,不过后来觉得这样生成的文件名都是无意义的字符串,对于客户来说其实跟乱码是一样的,一段时间后想找会上传过的文件根本不可能。
2.利用系统时间来命名文件。这个很容易实现。
3.把中文的字符转化成拼音字母。这个需要pinyin4j这个jar包,下载的链接是http://sourceforge.net/projects/pinyin4j/files/
在Dispatcher.java中加入以下代码,这样上传文件名“中文.jsp”的文件就会被重命名为“zhongwen.jsp”。
01.String fileName = FilenameUtils.getName(uplFile.getName());
02.//转换成拼音
03.HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();//设置拼音格式
04.format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//不显示声调
05.fileName = PinyinHelper.toHanyuPinyinString(fileName, format, "");