在FCKeditor2.6 上传文件名为中文的图片

FCKeditor升级到2.6后,已经可以在图片选择窗口里显示文件名为中文的上传图片了,但是在插入图片的时候图片名称会变成%E4%B8%AD%E6%96%87 这样的字符串,导致图片不能正确显示,即使手动把图片的路径改成/fck/userfiles/image/中文.jpg也是不能正确显示。所以这个改进对于上传中文图片的意义不是很大,还是要用其它办法来实现。

      以下介绍修改的办法。

      下载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, "");  


你可能感兴趣的:(java,String,fckeditor,jar)