1. 下载fckeditor-java-demo-2.6.war和fckeditor-java-2.6-bin.tar.gz
下载地址: http://sourceforge.net/projects/fckeditor/files/FCKeditor.Java/2.6/
2. 解压fckeditor-java-demo-2.6.war, 获取以下资源
主目录下的: fckeditor文件夹
lib目录下的:
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
imageinfo-1.9.jar
java-core-2.6.jar
slf4j-api-1.5.8.jar
slf4j-simple-1.5.8.jar
WEB-INF\classes目录下的:
fckeditor.properties
web.xml中的:
<servlet> <servlet-name>ConnectorServlet</servlet-name> <servlet-class> net.fckeditor.connector.ConnectorServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ConnectorServlet</servlet-name> <!-- Do not wrap this line otherwise Glassfish will fail to load this file --> <url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern> </servlet-mapping>
3. 建立web项目sample
将fckeditor文件夹sample\WebContent\plugins\fckeditor
在lib中放入
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
imageinfo-1.9.jar
java-core-2.6.jar
slf4j-api-1.5.8.jar
slf4j-simple-1.5.8.jar
在sample\src中放入(eclipse自动编译后会到classes目录下)
fckeditor.properties
在web.xml中加入
<servlet> <servlet-name>ConnectorServlet</servlet-name> <servlet-class> net.fckeditor.connector.ConnectorServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ConnectorServlet</servlet-name> <!-- Do not wrap this line otherwise Glassfish will fail to load this file --> <url-pattern>/plugins/fckeditor/editor/filemanager/connectors/*</url-pattern> </servlet-mapping>
4. 调整配置
fckeditor.properties
# allow client upload file to server connector.userActionImpl=net.fckeditor.requestcycle.impl.EnabledUserAction # user can see path connector.userFilesPath=/userfiles/fckeditor # user can store path connector.userFilesAbsolutePath=/userfiles/fckeditor # the default path of the editor fckeditor.basePath=/plugins/fckeditor
fckconfig.js
FCKConfig.AutoDetectLanguage = false ; FCKConfig.DefaultLanguage = 'zh-cn' ; // 可以加入自定义的工具栏 // custom your Toolbar and use it FCKConfig.ToolbarSets["Custom"] = [ ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink'] ] ;
5. 使用
fckeditor.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.fckeditor.net" prefix="FCK"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>use FCKeditor</title> </head> <body> <form action="commit.jsp" method="post" target="_blank"> <FCK:editor instanceName="EditorDefault" toolbarSet="Default" height="300" width="98%" > <jsp:attribute name="value"> This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net">FCKeditor</a>. </jsp:attribute> </FCK:editor> </body> </html>
commit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String content = request.getParameter("EditorDefault"); %> <div> <%= content%> </div>
6. 关于中文文件名问题, 在此重写代码, 自定义文件名.
这个fckeditor-java-2.6-bin.tar.gz包中有源码, 获取Dispatcher.java, 建立相应的包名net.fckeditor.connector
调整代码如下:
UploadResponse doPost(final HttpServletRequest request) { logger.debug("Entering Dispatcher#doPost"); Context context = ThreadLocalData.getContext(); context.logBaseParameters(); UploadResponse uploadResponse = null; // check permissions for user actions if (!RequestCycleHandler.isFileUploadEnabled(request)) uploadResponse = UploadResponse.getFileUploadDisabledError(); // check parameters else if (!Command.isValidForPost(context.getCommandStr())) uploadResponse = UploadResponse.getInvalidCommandError(); else if (!ResourceType.isValidType(context.getTypeStr())) uploadResponse = UploadResponse.getInvalidResourceTypeError(); else if (!UtilsFile.isValidPath(context.getCurrentFolderStr())) uploadResponse = UploadResponse.getInvalidCurrentFolderError(); else { // call the Connector#fileUpload ResourceType type = context.getDefaultResourceType(); FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> items = upload.parseRequest(request); // We upload just one file at the same time FileItem uplFile = items.get(0); // Some browsers transfer the entire source path not just the // filename String fileName = FilenameUtils.getName(uplFile.getName()); // rename file name logger.debug("old file name: " + fileName); fileName = dateFmt(new Date(), "yyyyMMdd") + "_" + UUID.randomUUID().toString().replace("-", "") + "." + getExtension(fileName); logger.debug("rename file name: " + fileName); logger.debug("Parameter NewFile: {}", fileName); // check the extension if (type.isDeniedExtension(FilenameUtils.getExtension(fileName))) uploadResponse = UploadResponse.getInvalidFileTypeError(); // Secure image check (can't be done if QuickUpload) else if (type.equals(ResourceType.IMAGE) && PropertiesLoader.isSecureImageUploads() && !UtilsFile.isImage(uplFile.getInputStream())) { uploadResponse = UploadResponse.getInvalidFileTypeError(); } else { String sanitizedFileName = UtilsFile.sanitizeFileName(fileName); logger.debug("Parameter NewFile (sanitized): {}", sanitizedFileName); String newFileName = connector.fileUpload(type, context.getCurrentFolderStr(), sanitizedFileName, uplFile.getInputStream()); String fileUrl = UtilsResponse.fileUrl(RequestCycleHandler.getUserFilesPath(request), type, context.getCurrentFolderStr(), newFileName); if (sanitizedFileName.equals(newFileName)) uploadResponse = UploadResponse.getOK(fileUrl); else { uploadResponse = UploadResponse.getFileRenamedWarning(fileUrl, newFileName); logger.debug("Parameter NewFile (renamed): {}", newFileName); } } uplFile.delete(); } catch (InvalidCurrentFolderException e) { uploadResponse = UploadResponse.getInvalidCurrentFolderError(); } catch (WriteException e) { uploadResponse = UploadResponse.getFileUploadWriteError(); } catch (IOException e) { uploadResponse = UploadResponse.getFileUploadWriteError(); } catch (FileUploadException e) { uploadResponse = UploadResponse.getFileUploadWriteError(); } } logger.debug("Exiting Dispatcher#doPost"); return uploadResponse; } /** * get extend of file name * * @param fileName * @return */ private String getExtension(String fileName) { return fileName.substring(fileName.lastIndexOf(".") + 1); } /** * format Date to String * * @param mydate * @param strDate * @return */ private String dateFmt(Date mydate, String strDate) { if (mydate == null) { return ""; } java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(strDate); return df.format(mydate); }
7. 此时日志有info信息输出,控制日志输出.
删除lib目录下的: slf4j-simple-1.5.8.jar
同时添加:
slf4j-log4j12-1.5.8.jar
log4j-1.2.16.jar
在sample\src中放入(eclipse自动编译后会到classes目录下)log4j.properties
log4j.rootLogger=error, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=(%F:%L) - %m%n
代码中的颜色不知道怎么设置, 没标出具体区别, 见谅.
相关推荐
最新的FCK 2.6
FCK2.6 (内附所有所需内容 包括代码) 里面的我都已经配置好了(是按照ASP.NET配置的)! 希望可以给你们带来帮助
最新版的fck Java版本,
这是一个PHP配置好的FCK的例子,可以读出FCK,提交后显示值的一个简单的例子,一看就会用了.
jsp中fck的使用,fck在jsp中的配置
jsp 程序调用fckeditor2.6 版本的 小例子 本人发现fckeditor2.6加 fckeditor for 2.3 的时候在上传中文文件的时候会出现乱码 所以本人...哈哈 lib 下的 FCK2.6.JAR 是我重新打的包 <br>qq 交流 361619004
步骤1:将fckeditor文件夹拷贝到/WebRoot目录下 步骤2:将lib文件夹下的两个jar文件拷贝...步骤4:将Web.xml文件中的内容拷贝到工程的web.xml文件中,注意里面两个Servlet配置的路径修改 在JSP页面配置FCKeditor编辑器
此文档包括FCK需要的jar包,权限,web配置 及在jsp中配置的说明。
FCK2.6(.net版) vs2005 .net2.0下做的, 已经作了详细的配置,可以上传图片, flash等文件.
在JSP中利用fck在线编辑器如何实现,也解决了上传图片出现乱码的问题
fckeditor-java-2.6 源代码 FCK fckeditor-java-2.6 源代码 FCK fckeditor-java-2.6 源代码 FCK fckeditor-java-2.6 源代码 FCK
jsp版fck完整小例子,精简版,原创 使得fck完全支持jsp,java开发 提升了fck的响应速度
FCK在asp.net和MVC中的使用方法包过上传图片 含fck 和 DLL源码 以及使用实例,简单易懂,一看就会
.Net中Fck用法详解(带fck) 一个word文档说明fck在Asp中的用法 适用于初学者
jsp嵌入fck或ck编辑器所需导入的jar包
FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用FCK配置和使用
一个用完整的FCK在jsp中的应用实例(源文件).
EXT中FCK的使用Demo,附带详细使用说明。
一个很好用的JSP编辑器,功能也比较强大!有三款皮肤!欢迎大家下载!
FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑器使用说明FCK在线编辑...