`

FCKeditor 部署

阅读更多

 

   具体见附件

 

FCKeditor 配置(主要是是实现浏览服务器和中文乱码)

这个配置真的非常让人头疼的。首先我想说的是,我没有做任何权限控制,这些需要加一些 filter ,不过至今没有研究过。

一、   解决浏览服务器

jsp 后台,服务是通过 servlet 来做的,同样的这个 FCKeditor 浏览服务器也是的。而我们需要做的有两个方面,一个是前台页面的 js 配置,一个是后台的 web.xml 配置

首先, fckeditor

我们是做一些必要的文件部署,把 FCKeditor 这个文件夹放置到 webapp (网页根目录),这是 FCKeditor 的根本。也是前台产生界面的来源。(我测试时采用的是 FCKeditor-2.6 ,这个版本倒没什么影响)

第二,包文件

我们需要把相应的 java 文件包做一些复制。经过多次测试得出一些经验,这次配置使用的 FCKeditor-java-2.4 ,我们不光需要的是他的包文件,我们还应该下载源文件,因为我们之后解决中文问题时必须要用到其中的一个叫做 ConnectorServlet.java 做一些修改。

目录 fckeditor-java-2.4 中,有个包

fckeditor-java-core-2.4.jar

目录 fckeditor-java-2.4\lib 中有三个包

Commons-fileupload-1.2.1.jar

Commons-io-1.3.2.jar

Slf4j-api-1.5.2.jar

还需要用到包

slf4j-simple-1.5.2.jar 这个包应该在 slf4j-1.5.2 这个文件夹中找到我们这个里面会用到

org.slf4j.impl.StaticLoggerBinder 这个类

这些包就是后台配置所必需的包,把他们都拷贝到

webapp/WEB-INF/lib 目录待用。

第三 fckconfig.js WEB-INF/web.xml 配置

这两项配置是否成功将直接导致我们是否能正确的访问到 servlet ,并实现浏览服务器功能。

之前做了很多测试发现, fckconfig.js 中的 URL 是和 web.xml 中的

<servlet-mapping> 项有关联的。先配置 web.xml

打开 web.xml, 在其中添加如下内容,因为使用的是 2.4 ,只需要添加一部分

    < servlet >

        < servlet-name > Connector </ servlet-name >

        < servlet-class > net.fckeditor.connector.ConnectorServlet </ servlet-class >

        < init-param >

            < param-name > baseDir </ param-name >

            < param-value > /userfiles/ </ param-value >

        </ init-param >

        < init-param >

            < param-name > debug </ param-name >

            < param-value > true </ param-value >

        </ init-param >

        < load-on-startup > 1 </ load-on-startup >

</ servlet >

< servlet-mapping >

     < servlet-name > Connector </ servlet-name >

     < url-pattern > /fckeditor/editor/filemanager/connectors/* </ url-pattern >

  </ servlet-mapping >

说明:上面的 <servlet-class> 对应的其实是包

fckeditor-java-core-2.4.jar 中的一个类(这个类是第一步配置,因为我们后来还要做修改,中文乱码问题)

然后观察 <url-pattern> 这里可能还没看出任何问题,我们再看 fckconfig.js 中的 URL 项(这里随便找了一条,共有六条)

FCKConfig.LinkBrowserURL = FCKConfig.BasePath +

'filemanager/browser/default/browser.html?Connector=' +

  encodeURIComponent( FCKConfig.BasePath +

  'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;

 

经过测试 FCKconfig.BasePath 是这个 /fckeditor/editor ,(理论上说是 fckeditor.html 所在目录)。观察这个后面的这个 Connetor= 的那一项,其实就是给出了

/fckeditor/editor/filemanager/connectors/* 这个路径 , 尽管这个路劲并不存在,他会由服务器端的映射自动的映射到相应的 servlet 上去。

这些配置做完了以后。离成功就不远了。

还需要一个东西, FCKeditor.tld ,这个文件可以再 fckeditor-2.3 中的 /src 目录找到,复制到 /WEB-INF 目录 , 并在 web.xml 中说明这个 taglib

< taglib >

< taglib-uri > /test </ taglib-uri >

< taglib-location > /WEB-INF/FCKeditor.tld </ taglib-location >

</ taglib >

 

经过上述配置,在我们页面上的就可以正确的浏览服务器了。

我们还可以做一些详细的修改,比如在

/fckeditor/editor/dialog/fck_image/fck_image_preview.html 文件中去掉那一段话,这样我们的预览框就没有一长段文字了。

还比如,我们可以在 fckconfig.js 上配置默认的皮肤路径,比如把默认的换成 silver ,看起来就比较搭配,还有,可以创建自己的

toolbarset ,这也是安全控制的一个方式。

 

强烈要求注意:这个问题困扰我一整天,我们在向文件夹 WEB-INF 拷这些包的时候,一定要把之前存在的版本号不同的相同的包删除,这样才能保证服务器在运行的时候能确定到底进入那个包找相应的类。若不删除,会出现一直奇怪的抛出异常让人以为配置出错了。其实问题就在这里。

 

 

 

 

 

二、   解决中文文件名和文件夹乱码

 

经过之前的配置,我们已经能实现基本的非中文文件的上传和浏览以及非中文目录的创建和浏览。而这个配置对于我们的中文处理时无能为力的。

先做一个全局的配置,打开服务器 tomcat server.xml

在两个 <connector ………… /> 项中加入配置 URIEncoding = "UTF-8"

指定他的 uri 编码为 ”utf-8” ,不过这个配置的生效似乎要重启浏览器和客户端,在测试的时候,这个配置在配置发生后很久才发生作用。

 

然后为了在用户界面 浏览服务器时选择的中文文件名在路径框中显示正确的中文名称,需要修改

/ editor/filemanager/browser/default/frmresourceslist.html 中的 OpenFile 方法(大概 92 行)

window.top.opener.SetUrl( encodeURI( fileUrl ).replace( '#', '%23' ) ) ;

改为

window.top.opener.SetUrl(fileUrl) ;

这样,前台的路径框中就会显示正确的中文名称。

 

最后配置之前的 ConnectorServlet

先搞清楚和浏览服务器相关的类,第一步中的 ConnectorServlet, 这个类并没有提供任何的中文解析方法。因此我们需要把代码进行修改。

首先找到这个类,然后把这个类关联到源文件,这个源文件是只读的,我们需要创建自己的类。

于是,我创建了 fck.fckeditor.connector.ConnectorServlet 这个类,并把上面的源文件复制过来,需要做修改的地方在

这个类的 doPost 方法中大概 223 行的位置处,是一个

ServletFileUpload upload = new ServletFileUpload(factory);

和一个 try 块之间添加一句

upload.setHeaderEncoding( "UTF-8" );

由此指定他的编码为 UTF-8

在我的测试中,经过这一步处理,就已经完全处理了文件目录和文件名的乱码问题。而在 网络资料,以及传智播客的教育视频中,他还做了一些修改,就是在这个类的 doGet 方法中大概 132

String newFolderStr = UtilsFile.sanitizeFolderName (request

                        .getParameter("NewFolderName"));

对这一句进行了修改

改成了

String tempStr = request.getParameter("NewFolderName");

tempStr = new String(tempStr.getBytes(“iso8859-1”),”UTF-8”);

String newFolderStr = UtilsFile.sanitizeFolderName (tempStr);

也是对字符编码做了调整。

紫色部分经过我的测试先不要加上去。

 

在这里修改完成后,我们还要发布我们自己的包,在 Eclipse 中右

分享到:
评论

相关推荐

    fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法

    本文实例讲述了fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法。分享给大家供大家参考,具体如下: 当部署含有Fckeditor编辑器的应用程序时,在tomcat下什么问题都没有,但当部署到weblogic下...

    Fckeditor实例(java)

    // 这里应指向你的Fckeditor部署路径 oFCKeditor.Width = '100%' ; oFCKeditor.Height = '300' ; oFCKeditor.Value = '' ; oFCKeditor.Create() ; ``` Fckeditor创建完成后,用户就可以在编辑器中进行文本...

    fckeditor编辑器

    例如,你可以将FCKeditor部署在项目的"/fckeditor"目录下。 2. **创建编辑器实例**:在客户端的HTML页面中,你需要引入FCKeditor的JavaScript文件,然后使用JavaScript代码创建编辑器实例。这通常是在一个textarea...

    zk-FCKeditor-2.5.1_1.zip

    6. **部署和测试**:了解如何将集成后的FCKeditor部署到服务器,并进行功能测试和性能优化。 通过以上知识点的学习和实践,开发者可以成功地将FCKeditor集成到ZK应用中,为用户提供一个强大的富文本编辑体验。

    FCKeditor2.6.4使用说明

    **FCKeditor2.6.4使用说明** FCKeditor是一款功能强大的开源文本编辑器,广泛应用于网页内容编辑,尤其适合需要用户输入HTML内容的网站。版本2.6.4是其历史版本之一,提供了丰富的功能和良好的兼容性。本文将详细...

    fckeditor示例,可以直接导入eclipse部署运行

    **FCKeditor简介** FCKeditor是一款开源的Web富文本编辑器,它允许用户在浏览器端进行文字编辑、格式设置、插入图片、链接等操作,实现了“所见即所得”的编辑效果。这款编辑器最初由Fernando Gietz开发,后来演变...

    FCKeditor.Net_2.6.3.zip和FCKeditor-v2.6.3

    1. **解压和部署**:将下载的zip文件解压缩,然后将相关文件夹复制到服务器或本地开发环境中。 2. **配置文件**:根据实际需求修改配置文件(如fckconfig.js),设置默认样式、允许的HTML标签等。 3. **引用...

    FCKeditor开发jar包及fckeditor文件夹

    - 对于Web应用,需要将fckeditor文件夹部署到Web服务器的适当位置,然后在HTML页面中通过JavaScript引入编辑器,并配置相应的参数。 4. **扩展与自定义**: - FCKeditor支持自定义工具栏,开发者可以根据需求调整...

    Fckeditor(综合利用工具)

    在部署到生产环境中时,需要考虑编辑器与现有系统的兼容性,以及如何通过配置文件调整编辑器的行为以满足特定需求。 总而言之,Fckeditor作为一款强大的富文本编辑器,不仅为用户提供便捷的内容创作工具,也为...

    fckeditor源文件和demo

    这个文件包含了FCKeditor的Java版本示例应用,你可以通过部署它来直观地了解如何在Java Web项目中集成FCKeditor。运行这个DEMO,你可以看到预设的各种编辑器功能,例如文本格式化、图片上传、链接管理等。 2. **...

    FckEditor在线编辑器

    开发者可以通过解压并部署此WAR文件来学习FckEditor与Java后端的集成方法。 总的来说,FckEditor是一个功能强大、易用且可扩展的在线编辑器,对于需要在网页上提供复杂文本编辑功能的开发者而言,它是一个理想的...

    fckeditor 完整示例

    - 在Web服务器上部署这个文件夹,确保Web服务能够访问到其中的HTML、JavaScript和CSS文件。 - 配置`fckeditor`的路径,以便在网页中正确引用。 2. **基本使用** - 创建编辑器实例:通过JavaScript代码实例化`...

    fckeditor2.6.5 for jsp

    在描述中提到的部署方式,表明了Fckeditor2.6.5可以轻松集成到两种常见的Java应用服务器——Tomcat和JBoss中。对于Tomcat,可以直接将解压后的文件夹命名为“fckeditor2.6.5 demo”,然后将其放置在Tomcat的webapps...

    FCKEditor实例

    下面我们将深入探讨FCKEditor的基本概念、安装部署以及如何在JSP中集成和使用。 ### 1. FCKEditor 简介 FCKeditor是由Fernando Montoya开发的一个JavaScript库,它提供了丰富的文本编辑功能,如字体选择、颜色调整...

    传智播客fckeditor视频

    - **下载与部署**:介绍如何从官方网站或其他渠道下载最新版本的FCKeditor,并将其部署到项目中。 - **基本配置**:讲解如何通过配置文件或HTML属性来调整编辑器的基本行为,例如启用或禁用某些工具栏按钮。 #### 2...

    FCKeditorDemo,教你如何使用FCKeditor的相关资料

    在使用FCKeditor之前,你需要先下载相应的版本并将其部署到你的项目中。下载完成后,将FCKeditor解压,然后将解压后的文件夹放入你的Web应用程序的适当目录下。接着,你需要在HTML或服务器端代码中引入FCKeditor的...

    FCKeditor_2.6.6+FCKeditor.Net_2.6.4

    3. **配置与部署**:在.NET环境中,配置FCKeditor可能涉及到注册控件、设置编译前的文件复制规则等步骤,确保所有必要的文件都能在运行时正确找到。 4. **安全性**:在.NET环境中,需要注意对用户提交的内容进行...

    FCKeditor

    FCKeditor的JavaScript文件和编辑器界面通常会部署在这个目录的子目录下,比如`WebRoot/js/FCKeditor`。 `.myeclipse` 目录包含MyEclipse的项目特定配置信息。虽然一般不需要直接操作这个目录,但在集成FCKeditor的...

Global site tag (gtag.js) - Google Analytics