源:http://blog.youkuaiyun.com/flamezyg/article/details/6786782
官网文档:http://java.fckeditor.net/index.html
CKEditor 3开启文件上传功能(Servlet实现):http://blog.sina.com.cn/s/blog_3fed3a390100hwni.html
评:
- <span style="font-family: Arial, Verdana, sans-serif; white-space: normal; background-color: rgb(255, 255, 255); ">我所用的FCKEditor 是 fckeditor-java-demo-2.4.zip压缩包</span>
源文件:fckeditor-java-2.4-src.zip
看了一下FCKEditor代码,FCKEditor 多用户上传路径实现其实非常简单。
一、实现net.fckeditor.requestcycle包下两个接口 UserPathBuilder
其中UserPathBuilder这个接口有这样个函数
public String getUserFilesPath(HttpServletRequest request)
是取自定义路径的
UserAction这个接口是验证用户是否有权浏览与上传。这个不多说,自己去实现。
- public class UserPathBuilderImpl implements UserPathBuilder {
- // 虚拟目录设置
- //实际的路径
- public String getUserFilesAbsolutePath(HttpServletRequest request) {
- StringBuffer userFilesPathBuffer = new StringBuffer();
- // 获得定义connector.userFilesPath的值
- String path = PropertiesLoader.getProperty("connector.userFilesPath");
- userFilesPathBuffer.append(path);
- userFilesPathBuffer.append("/");
- CurrentUser user = (CurrentUser) request.getSession().getAttribute(
- "user");
- String userPath = "userDefault";
- if (user != null) {
- userPath = String.valueOf(user.getId());
- }
- userFilesPathBuffer.append(userPath);
- return userFilesPathBuffer.toString();
- }
- // FCK目录设置
- //读取的路径
- public String getUserFilesPath(HttpServletRequest request) {
- StringBuffer userFilesPathBuffer = new StringBuffer();
- String context = request.getContextPath();
- userFilesPathBuffer.append(context);
- // 获得定义connector.userFilesPath的值
- String path = PropertiesLoader.getProperty("connector.userFilesPath");
- userFilesPathBuffer.append(path);
- userFilesPathBuffer.append("/");
- CurrentUser user = (CurrentUser) request.getSession().getAttribute(
- "user");
- String userPath = "userDefault";
- if (user != null) {
- userPath = String.valueOf(user.getId());
- }
- userFilesPathBuffer.append(userPath);
- return userFilesPathBuffer.toString();
- }
- }
二、修改你工工程src目录下fckeditor.properties这个文件
将connector.userActionImpl与connector.userPathBuilderImpl这个属性修改成你实现了这两个接口的全类名
- connector.userActionImpl=net.fckeditor.requestcycle.impl.EnabledUserAction
- connector.userPathBuilderImpl=com.ids.project.knowledge.action.UserPathBuilderImpl
- connector.userFilesPath =/userfiles