FCKEditor是采用Ajax技术开发的一个开源代码的编辑器。
l FCKEditor怎样嵌入到项目中:
1. 下载FCKeditor-2.2.gz包和FCKeditor_2.6.4.1包。
2. 把FCKeditor-2.2/web/WEB-INF/lib下的jar拷贝到项目的lib下;把FCKeditor_2.6.4.1包下的editor fckconfig.js fckeitor.js fckstyles.xml fcktemplates.xml文件拷贝到项目的根目录下。
3. 配置web.xml文件
a. 配置控制器。即com.fredck.FCKeditor.connector.ConnectorServlet类,此类需要一些参数如: baseDir文件存放的基本路径。
b. 配置文件上传类。即com.fredck.FCKeditor.uploader.SimpleUploaderServletl类,FCKEditor采用apache的上传文件组件。此类需要一些参数如:不允许那种格式的文件不能上传等。
<servlet> <servlet-name>Connector</servlet-name> <servlet-class>com.fredck.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> <servlet-name>SimpleUploader</servlet-name> <servlet-class> com.fredck.FCKeditor.uploader.SimpleUploaderServlet </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> <init-param> <param-name>enabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>AllowedExtensionsFile</param-name> <param-value></param-value> </init-param> <init-param> <param-name>DeniedExtensionsFile</param-name> <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value> </init-param> <init-param> <param-name>AllowedExtensionsImage</param-name> <param-value>jpg|gif|jpeg|png|bmp</param-value> </init-param> <init-param> <param-name>DeniedExtensionsImage</param-name> <param-value></param-value> </init-param> <init-param> <param-name>AllowedExtensionsFlash</param-name> <param-value>swf|fla</param-value> </init-param> <init-param> <param-name>DeniedExtensionsFlash</param-name> <param-value></param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Connector</servlet-name> <url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>SimpleUploader</servlet-name> <url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern> </servlet-mapping> |
4. fckeditor加入到jsp 页面:
a. 把fckeditor.js导入到也面中。
b. 定义一个<textarea id=”ID” name=””></textarea>
c. 在<script></script>当中建立一个FCKEditor对象。
var oFCKeditor = new FCKeditor('myTextArea');此对相可以设置FCKEditor的属性。如:oFCKeditor.Height = 400; oFCKeditor.Width = 600;属性设置参考fckconfig.js。
l FCKEditor文件上传重构
1. fckEditor文件上传的需求是:每个用户有自己的文件上传空间即每个用户只能看到系统为这个用户创建的文件夹。
2. 设计
通过session取出当前用户,并通过当前用户创建用户私人的上传文件目录,并判断此用户是否是第一次上传文件如果是第一则为他创建上传文件目录。采用的技术是HttpServlet和apache fileUpload组件。
3. 实现
a.得到用户的目录。 private static String getBaseDir(HttpServletRequest request) { String baseDir = null; User user = (User) request.getSession().getAttribute( LoginController.LOGINUSER); if (user != null) { baseDir = "/userfiles/" + user.getAccount() + "/"; } else { baseDir = "/userfiles/匿名/"; } return baseDir; } b.判断该用户是否第一次上传文件。 String baseDir = getBaseDir(request); String realBaseDir = getServletContext().getRealPath(baseDir); File baseFile = new File(realBaseDir); if (!baseFile.exists()) { baseFile.mkdir(); } |
l FCKEditor乱码的解决方案
1.把SimpleUploaderServlet.java做如下修改:
找到该程序中DiskFileUpload upload = new DiskFileUpload(),然后在该行下面添加upload.setHeaderEncoding("UTF-8") 。
2.ConnectorServlet.java中添加 upload.setHeaderEncoding("UTF-8")便可。
3.server.xml
Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>和
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />分别加入一句:URIEncoding="utf-8";