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文件,自己只写了三个类,外加修改了一个配置文件,希望对大家有用。

你可能感兴趣的:(.net,servlet,fckeditor,配置管理,asp.net)