前一段做项目时遇到的一些问题,简单的总结一下,针对那些很简单或网上很容易找到答案的就不说了,没啥意思.
一、 文件部署
1、 Fckeditor目录拷贝到工程下的WebContent根下
2、 fckeditor.properties拷贝到工程的src根下
3、 如下六个jar包放入lib目录下:
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
imageinfo-1.9.jar
java-core-2.6.jar
slf4j-simple-1.5.8.jar
slf4j-api-1.5.8.jar
二、 系统文件配置
1、 如下内容加入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>
<url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
</servlet-mapping>
三、 页面引用
1、引入相应标签,还有另外两种引入方式,此处不做介绍,有感兴趣的自己查去!
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.fckeditor.net/" prefix="FCK"%>
<html>
<head>
<title>测试页面</title>
</head>
<body>
This is my JSP page. <br>
<FCK:editor instanceName="myEditor" basePath="/fckeditor" value=" "></FCK:editor>
</body>
</html>
四、 对该编辑器进行的一些常规修改
1、 自定义ToolbarSet,去掉一些功能按钮
fckconfig.js中FCKConfig.ToolbarSets项中将没用的去掉,每一个字符串代表着一个按钮,如‘Source’就对应工具栏的源代码按钮。
2、 加上几种常用的字体
FCKConfig.FontNames 为引用的字体
FCKConfig.FontNames = '宋体;楷体_GB2312;黑体;隶书;Time New Roman;Arial';
3、对上传图片的一些限制
上传图片大小限制:Dispatcher.java中增加如下代码:我的文件大小限制写在了配置文件中,可做参考。doPost函数的进行判断为0或小于0或非数字时不做判断。同时在fckeditor.properties中增加fckeditor.uploadImgSize = 0键值。我是为了改起来方便,按本来的想法是要写在default.properties中并封入JAR包的。
//取得上传图片文件大小的控制值
int imgsize = 0;
if(PropertiesLoader.getProperty("fckeditor.uploadImgSize")!=null&&
PropertiesLoader.getProperty("fckeditor.uploadImgSize").matches("//d*")){
imgsize = Integer.parseInt(PropertiesLoader.getProperty("fckeditor.uploadImgSize"));
}
if(imgsize>0&&uplFile.getSize()> imgsize * 1024) {
uploadResponse = UploadResponse.getInvalidFileMaxSizeError();
代码要贴就贴全了,省得挨骂,可以仿文件类型验证的处理方法再写一个对文件大小的验证方法,代码如下:
public static UploadResponse getInvalidFileMaxSizeError() {
LocalizedMessages lm = LocalizedMessages.getInstance(ThreadLocalData
.getRequest());
return new UploadResponse(EN_INVALID_FILE_MAXSIZE_ERROR, lm
.getInvalidFileMaxSizeSpecified());
}
//错误号,网上很多都用这个,原因就是顺着错误的顺序写,正好就是204了。
public static final int EN_INVALID_FILE_MAXSIZE_ERROR = 204;
public String getInvalidFileMaxSizeSpecified() {
return getMessage("connector.fileUpload.invalid_file_maxsize_specified"); //$NON-NLS-1$
}
connector.fileUpload.invalid_file_maxsize_specified = the upload file too large
代码完事了,下面就是页面的处理。如下:
frmupload.html中
case 202 :
alert( 'Invalid file' ) ;
break ;
case 204 :
alert( "您的图片大小超过了限制!" );
break;
对上传图片尺寸的限定设置:
fck_image.js中function Ok()函数里增加如下代码:
//限制宽度开始
if(!(GetE('txtWidth').value>0||GetE('txtWidth').value<750))
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的宽度范围为0--750,请重新输入') ;
GetE('txtWidth').value='';
GetE('txtWidth').focus() ;
return false;
}
if(GetE('txtWidth').value.length==0)
{
window.parent.SetSelectedTab( 'Info' ) ;
GetE('txtWidth').focus();
alert( '请输入图像宽度,图像宽度不能超过750' ) ;
return false ;
}
if(GetE('txtWidth').value>750)
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的宽度不能超过750,请重新输入') ;
GetE('txtWidth').value='';
GetE('txtWidth').focus() ;
return false;
}
if(GetE('txtWidth').value<0)
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的宽度不能为负,请重新输入') ;
GetE('txtWidth').value='';
GetE('txtWidth').focus() ;
return false;
}
if(GetE('txtHeight').value<0)
{
window.parent.SetSelectedTab( 'Info' ) ;
alert('图片的高度不能为负,请重新输入') ;
GetE('txtHeight').value='';
GetE('txtHeight').focus() ;
return false;
}
//限制宽度结束