FCKeditor for jsp(常用设置与中文乱码的解决)

转载于:http://panjiangchuan.javaeye.com/blog/524921

 

通过配置文件设定fckeditor的配置
一:直接修改fckconfig.js文件
二:自定义配置文件,自定义项将覆盖fckconfig.js文件中的默认设置
(1):新建配置文件【即是普通的js文件】
例:在项目的根目录下新建myconfig.js文件
内容:
FCKConfig.AutoDetectLanguage= true ;
FCKConfig.DefaultLanguage= 'zh-cn' ;
......
(2):读取配置文件【由于发布项目的不确定性,自定义文件一般放入fckeditor文件夹下 FCKConfig.EditorPath代表fckeditor文件夹下】
1):修改fckconfig.js文件的FCKConfig.CustomConfigurationsPath = FCKConfig.EditorPath+'myconfig.js' ;
2):调用fckeditor的时候读取配置文件,新建FCKeditor对象oFCKeditor(推荐使用,对单个的编辑域起作用)
oFCKeditor.config["CustomConfigurationsPath"]=FCKConfig.EditorPath+"myconfig.js";
常见需要修改的配置:
(1):添加常见的中文字体:修改或者自定义配置文件的FontNames属性
例:FCKConfig.FontNames='宋体;楷体_GB2312;黑体;隶书;Times New Roman;Arial';
(2):设置工具条:修改或者自定义配置文件的ToolbarSets属性
例:FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
注:Basic:工具条的名称(调用时使用) 单引号内部 单词表示一个菜单项 -表示一个分隔符 /表示换行符【参照fckconfig.js中的ToolbarSets设置工具条】
(3):修改"回车"和"shift+回车"的换行行为:修改或者自定义配置文件的FontNames属性
例:FCKConfig.EnterMode = 'br' ;
FCKConfig.ShiftEnterMode = 'p' ;
注:EnterMode:回车行为 ShiftEnterMode:shift+回车行为 【他们的取值只能为p div br 三者之一】
(4):修改编辑区样式文件:修改或者自定义配置文件的EditorAreaCSS属性
例:FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css' ;
注:FCKConfig.BasePath指的是:fckeditor/editor文件夹。
(5):配置表情图片:修改或者自定义配置文件的SmileyPath SmileyImages SmileyColumns SmileyWindowWidth SmileyWindowHeight属性
例:FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 210 ;
注:SmileyPath:指定表情所在的文件夹 SmileyImages指定表情图片的名称 SmileyColumns指定每行显示表情的个数 SmileyWindowWidth SmileyWindowHeight表情列表的宽度和高度。修改fckeditor/editor/dialog/fck_smiley.html文件 注释掉dialog.SetAutoSize( true ) ;行 使之表情列表按照指定的宽度和高度显示,修改<body style="overflow: hidden">为<body style="overflow: auto">使表情列表出现滚动条,完全显示表情。
注意:JSP页面的BasePath指:fckeditor.js的路径,配置文件的BasePath指:fckeditor/editor文件夹 配置文件的EditorPath指:fckeditor文件夹下。
文件上传控制:
(1):文件类型的控制(分为四种类型 分别为:文件 图像 flash 媒体)【二者配置必须同步】
        1)配置自定义fckeditor配置文件(客户端配置 媒体没有客户端配置)
例:FCKConfig.LinkUploadAllowedExtensions = ".
(7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip)$" ;
    FCKConfig.ImageUploadAllowedExtensions = ".(jpg|gif|jpeg|png|bmp)$" ;
    FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ;
        2)配置fckeditor.properties资源文件(服务器端配置),在资源文件中加入:
例:connector.resourceType.file.extensions.allowed = 
7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip
connector.resourceType.image.extensions.allowed = bmp|gif|jpeg|jpg|png
connector.resourceType.flash.extensions.allowed = swf|fla
connector.resourceType.media.extensions.allowed=aiff|asf|avi|bmp|fla|flv|gif|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|png|qt|ram|rm|rmi|rmvb|swf|tif|tiff|wav|wma|wmv
(2):文件大小的控制:同理修改Dispatcher.java文件
中文乱码解决方案:
(1):使用最新的fckeditor.java-2.5.bin.zip文件将不会出现上传中文文件名文件出现乱码。
(2):创建中文目录时出现乱码:修改net.fckeditor.connector包下的Dispatcher.class文件。
1):下载fckeditor-java-2.5-src.zip源文件。
2):在你的工程目录下新建net.fckeditor.connector包,复制fckeditor-java-2.5/java-core/src/main/java/net/fckeditor/connector/Dispatcher.java文件到该包下。【值得注意的是编辑该文件前一定先将6个jar文件拷贝到lib目录下】
3):编辑该文件 在doGet成员方法下找到:String newFolderNameStr = request.getParameter("NewFolderName");
     logger.debug("Parameter NewFolderName: {}",newFolderNameStr);
     改为:
     String newFolderNameStr = request.getParameter("NewFolderName");
     String temp= new String(newFolderNameStr.getBytes("iso8859-1"),"utf-8");
     newFolderNameStr = temp;
     logger.debug("Parameter NewFolderName: {}",newFolderNameStr);
4):解压fckeditor-java-core-2.5.jar文件,并部署你的项目,在部署后的classes文件夹下找到你编译好的Dispatcher.class文件替换 fckeditor-java-core-2.5.jar解压后的net.fckeditor.connector文件夹下的Dispatcher.class,并且重新打包该文件。
5):用改变后的fckeditor-java-core-2.5.jar文件代替原来的文件,重新部署。
(3):引用中文名称的图片不能正常显示:
1):修改服务器配置【不推荐使用,因为会使get传递的参数出现乱码 如:创建中文文件夹再次出现乱码】:修改Tomcat 6.0/conf/server.xml文件中服务器所对应的端口所对应的配置
例:我的tomcat的端口是:8080则该段配置则修改为:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
       URIEncoding="utf-8"/>
2):修改上传文件的文件名【使名称变为当前时间(也可以使用UUID构造名称)】避免出现中文:再次修改Dispatcher.java文件。
找到:doPost方法下的: String fileName = FilenameUtils.getName(uplFile.getName());
logger.debug("Parameter NewFile: {}", fileName);
修改为:
String fileName = FilenameUtils.getName(uplFile.getName());
String suffix = fileName.substring(fileName.lastIndexOf("."));
Calendar cad = Calendar.getInstance();
fileName = String.valueOf(cad.get(Calendar.YEAR))+String.valueOf(cad.get(Calendar.MONTH))+String.valueOf(cad.get(Calendar.DAY_OF_MONTH))+String.valueOf(cad.get(Calendar.HOUR_OF_DAY))+String.valueOf(cad.get(Calendar.MINUTE))+String.valueOf(cad.get(Calendar.SECOND));
fileName = fileName + suffix;
logger.debug("Parameter NewFile: {}", fileName);
3):同上进行编译和打包。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
彻底解决fckeditor(jsp版)上传中文图片乱码问题,我这里用的编码是utf-8的,这里用的fckeditor 是2.6的,fckeditor.java包是2.3的,经过我修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,重新生成fckeditor-java-2.3.jar包, 要解决所有的乱码问题,有3部要修改, 1.修改Web容器的字符编码,如果Web容器用的是Tomcat,则修改conf/server.xml文件,在两个Connector中添加“URIEncoding="utf-8"”,我这里用的是utf-8编码,所以修改成utf-8,若项目是gb2312编码,则设置为“URIEncoding="gb2312"”。 2.在“浏览服务器”页面中上传文件时,打开项目WebRoot中的文件/editor/filemanager/browser/default/frmupload.html,在head中加一个meta: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,看看该文件是不是utf-8格式的,若不是,则转换成utf-8,若你用的不是utf-8则转成你用的那种编码,上面charset也设置成你用的编码 3.修改ConnectorServlet.java和SimpleUploaderServlet.java两个文件,我在这两个文件中都是加了一个静态变量encoding,private static String encoding;保存项目中的编码, 若在web.xml文件中没有给这个变量传值的话,默认是gb2312,如下代码if(encoding.isEmpty()){encoding="gb2312";},在ConnectorServlet.java的doGet与doPost的开头部分加入request.setCharacterEncoding(encoding);将请求的字符集编码设置成项目中的编码,在ConnectorServlet.java和SimpleUploaderServlet.java两个文件中的DiskFileUpload upload = new DiskFileUpload();后面加入upload.setHeaderEncoding(encoding);告诉FileUpload组件处理时的编码为项目编码,在FileItem中,用getString(encoding),这项设置可以解决获取的表单字段为乱码的问题,所以在每个FileItem实例后面都执行一次getString(encoding),就告诉FileItem在取值时用的编码是encoding所设置的编码。如在ConnectorServlet.java和SimpleUploaderServlet.java两个文件中的 FileItem item后面加上一句item.getString(encoding);在FileItem uplFile后面加上一句uplFile.getString(encoding); 接下来就是设置web.xml了,在web.xml中给上面讲到的encoding传值,如下 <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> 一切都OK了,真正的解决了上传中文名图片乱码问题。 在上面的第3步中,要用到Ant产生jar,这时要注意, 把Tomcat安装目录下/server/lib里的catalina-ant.jar复制到项目的/WEB-INF/lib下。打开build.xml,修改property name="catalina.home"成Tomcat的安装目录。修改taskdef name="deploy"、taskdef name="list"、taskdef name="reload"、taskdef name="undeploy"如下: <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"> <classpath refid="compile.classpath"></classpath> </taskdef> <taskdef name="list" classname="org.apache.catalina.ant.ListTask"> <classpath refid="compile.classpath"></classpath> </taskdef> <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"> <classpath refid="compile.classpath"></classpath> </taskdef> <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"> <classpath refid="compile.classpath"></classpath> </taskdef> 然后在Eclipse的Outline窗口中运行Ant的dist,就会生成的新的FCKeditor-2.3.jar。 绝对是真实的,共享出来与大家分享,少一个上传其它文件的,如RAR的,有添加过这个功能的朋友也拿出来共享下吧

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值