`
01404421
  • 浏览: 227032 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

FckEditor java2.5试用,权限、路径都很方便可以操作,付Demo代码

阅读更多

本来想发在论坛上,结果自己积分为0还无法在论坛上发帖了,就只能写在自己博客里。

以前对Fck只是了解,今天用几个小时研究了一下它的配置和Java代码,发现FCKeditor.Java 2.5版本里对权限、路径等操作都很简单(以前没有自己看过,不知道以前版本的情况,呵呵)。

以下是三个自己写的类:

1.自定义路径,适用于博客、论坛,每个用户可以有一个自己的目录,互不影响。

package net.fckeditor.requestcycle.impl;

import javax.servlet.http.HttpServletRequest;
import net.fckeditor.requestcycle.impl.ContextPathBuilder;

/**
 * 2009-9-2
 * @author PengFei
 * 路径
 */
public class MyContextPathBuilder extends ContextPathBuilder {

	@Override
	public String getUserFilesPath(HttpServletRequest request) {
		// TODO Auto-generated method stub
		//在此可以根据从session中读取的用户名或者ID来对应其可以操作的目录
		String s=super.getUserFilesPath(request)+"/user1path";
		return s;
	}

	@Override
	public String getUserFilesAbsolutePath(HttpServletRequest request) {
		// TODO Auto-generated method stub
		String s=super.getUserFilesAbsolutePath(request)+"/user1path";
		return s;
	}

}

 2.权限管理,返回一个用户是否有新建文件夹、浏览服务器上的文件、上传文件的权限

  

package net.fckeditor.requestcycle.impl;

import javax.servlet.http.HttpServletRequest;
import net.fckeditor.requestcycle.UserAction;

/**
 * 2009-9-2
 * @author PengFei
 * 此类可以从session中读取用户信息,判断是否有权限进行相关操作
 */
public class MyEnabledUserAction implements UserAction {
	
	//权限--新建文件夹
	public boolean isCreateFolderEnabled(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return true;
	}

	//权限--浏览服务器上的文件列表
	public boolean isEnabledForFileBrowsing(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return true;
	}
	//权限--上传文件
	public boolean isEnabledForFileUpload(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return true;
	}

}

 3.文件重命名控制

  

package net.fckeditor.connector.impl;

import java.io.InputStream;

import net.fckeditor.connector.exception.InvalidCurrentFolderException;
import net.fckeditor.connector.exception.WriteException;
import net.fckeditor.handlers.ResourceType;

/**
 * 2009-9-2
 * @author PengFei
 * 文件上传的操作在ContextConnector类中,这里只是对其进行重命名操作,其实完全可以重新自己写上传的代码
 */
public  class  MyContextConnector extends ContextConnector {

	//此方法中可以对文件重命名
	@Override
	public String fileUpload(ResourceType type, String currentFolder,
			String fileName, InputStream inputStream)
			throws InvalidCurrentFolderException, WriteException {
		// TODO Auto-generated method stub
		fileName=fileName;//重命名操作在这里进行
		return super.fileUpload(type, currentFolder, fileName, inputStream);
	}

}

 当然还有其他一些配置,都可以通过继承和重写原有的类来实现。

注意有个配置文件不要忘记,src下的fckeditor.properties,根据以上我自定义的三个类,这里是这样配置的:

connector.userActionImpl=net.fckeditor.requestcycle.impl.MyEnabledUserAction

connector.userPathBuilderImpl=net.fckeditor.requestcycle.impl.MyContextPathBuilder

connector.impl=net.fckeditor.connector.impl.MyContextConnector

 当然还有其他配置,如果自己写的,就要在这里配置。详细见net.fckeditor.handlers包下的PropertiesLoader类,在载入的时候会先在fckeditor.properties中查询有无配置,如果有则使用,无则使用net.fckeditor.handlers包下的default.properties文件中的配置。配置的写法都可参照default.properties。

总结一下java web项目中使用FckEditor的步骤:

1.加入fckeditor的文件夹到ROOT目录下,以供网页调用

2.加入jar文件到lib下,2.5版本的demo里是6个jar,都在我的附件里有

3.web.xml中加入配置:

 

	<servlet>
		<description>FCKeditor Demo</description>
		<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>
		<url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
	</servlet-mapping>

 注意这个配置可以不做任何修改,如果是PHP或者ASP,它们的文件上传方法是写在页面中,而页面是放在/ckeditor/editor/filemanager/connectors/目录下。如果第一步中的fckeditor不是直接在ROOT下放置,则这里的路径要做相应的修改。这个servlet类也是非常简单,大家如果重写了这个类,那这里也要对应修改。

4.页面调用(有好几种方法,官方的JSP页面都有例子)。fckconfig.js里配置网上一搜一大堆,这里就不说了。

附上2.5版本官方demo中的JSP文件,自己只写了三个类,外加修改了一个配置文件,希望对大家有用。

10
1
分享到:
评论
12 楼 dongisland 2010-10-28  
里面写中文提交后是乱码。
11 楼 lzy5710303 2010-08-27  
写的非常不错
10 楼 01404421 2009-12-13  
天涯之海 写道
01404421 写道
天涯之海 写道
中文发出去是乱码
能用过滤器解决不?

你说的是中文文件上传后乱码吗?最简单的方法是重命名就可以了,服务器上尽量还是不要用中文命名的文件

现在乱码是解决了,只是不能上传图片,一上传图片就报异常

什么异常?能不能发出来看看
9 楼 天涯之海 2009-12-10  
01404421 写道
天涯之海 写道
中文发出去是乱码
能用过滤器解决不?

你说的是中文文件上传后乱码吗?最简单的方法是重命名就可以了,服务器上尽量还是不要用中文命名的文件



现在乱码是解决了,只是不能上传图片,一上传图片就报异常
8 楼 01404421 2009-12-09  
天涯之海 写道
中文发出去是乱码
能用过滤器解决不?

你说的是中文文件上传后乱码吗?最简单的方法是重命名就可以了,服务器上尽量还是不要用中文命名的文件
7 楼 天涯之海 2009-12-09  
中文发出去是乱码
能用过滤器解决不?
6 楼 01404421 2009-10-21  
lqixv 写道
能不能给个CKEditor 3.0实现的文件上传Demo?

我发的这个demo可以上传图片,你说的是文件上传指的是什么情况?
5 楼 01404421 2009-10-21  
yangour 写道
import net.fckeditor.requestcycle.impl.ContextPathBuilder;
没有这个文件阿

这个类在java-core-2.5.jar中,这个jar是FCK for java的核心包,必须要引入,如果还不行请把你的Demo发到我的邮箱里我看看,E-mail:309571108@qq.com
4 楼 yangour 2009-10-16  
import net.fckeditor.requestcycle.impl.ContextPathBuilder;
没有这个文件阿
3 楼 lqixv 2009-10-15  
能不能给个CKEditor 3.0实现的文件上传Demo?
2 楼 01404421 2009-10-14  
lqixv 写道
不错,收藏了。ckeditor3.x的文件上传你实现了吗?

CKEditor 3.0使用的java版本是2.5的,标题我写错了,不好意思
1 楼 lqixv 2009-10-13  
不错,收藏了。ckeditor3.x的文件上传你实现了吗?

相关推荐

Global site tag (gtag.js) - Google Analytics