`
cuisuqiang
  • 浏览: 3960418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3670214
社区版块
存档分类
最新评论

FCKEditor的使用01

    博客分类:
  • J2EE
阅读更多

1.首先登录官网下载文件包 如:FCKeditor_2.6.4.1.zip

2.解压后生成一个目录fckeditor将该目录拷贝到工程的根目录下

3.在页面中引用工具包,这里使用使用Javascript引用,还可以使用FCK的标签引用

<script type="text/javascript" src="fckeditor/fckeditor.js"></script>

 4.定义一个文本编译域,并在窗体加载时加载事件:

	<script type="text/javascript">
	window.onload=function(){
		var oFCKeditor = new FCKeditor( 'myData' ) ;
		//编译器基本路径
		oFCKeditor.BasePath	= "/fckeditor/fckeditor/";
		//高度
		oFCKeditor.Width=600;
		//宽度
		oFCKeditor.Height=400;
		//初始化内容
		oFCKeditor.value="WRITE YOU MESSAGE HERE!";
		oFCKeditor.ReplaceTextarea() ;    		
	}
	</script>
	<textarea rows="10" cols="20" name="myData" id="myData">    	
    </textarea>

 

1.修改工具条的内容

在引用文件里有一个fckconfig.js文件,打开后找到

FCKConfig.ToolbarSets["Default"]的配置,引用默认使用的是Default

一共63个属性,分别对在页面中看到的功能,自己定制想要的功能即可。

2.修改增加可应用的字体


同样在fckconfig.js文件中找到

FCKConfig.FontNames属性,然后进行增加如:

 

FCKConfig.FontNames		= '宋体;楷体;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

 

就增加了宋体和楷体两种样式

3.修改回车样式

同样在fckconfig.js文件中找到

FCKConfig.EnterMode = 'p' ;			// p | div | br
FCKConfig.ShiftEnterMode = 'br' ;	// p | div | br

 

定义了回车和SHIFT+回车的样式,默认是P,后面列出了可以使用的值,改为BR即可

4.增加表情图片

同样在fckconfig.js文件中找到

FCKConfig.SmileyPath	= FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages	= ['paisini.JPG','regular_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth		= 320 ;
FCKConfig.SmileyWindowHeight	= 210 ;

 

以上属性意思分别为,图片地址,图片,每行显示几个表情,表情窗口的宽度,高度

只要将图片复制到指定的文件内,然后在FCKConfig.SmileyImages内注册一下即可

注意:当我们添加的图片太多时,显示将出现不尽人意的地方,以下为如何显示滚动条

打开表情窗口看窗口属性可以得知,该窗口实际上是一个页面,该页面在

Fckeditor/ editor/ dialog/ fck_smiley.html ,找到文件做如下修改:

1)在该页面加载时调用了一个函数

 

window.onload = function ()
{
	// First of all, translate the dialog box texts
	oEditor.FCKLanguageManager.TranslatePage(document) ;
	//dialog.SetAutoSize( true ) ;
}

 

注释掉第二句内容

2)在页面中有该属性

<body style="overflow: hidden">

 

Overflow的意思可以参考CSS手册,默认是不显示滚动条,可选值还有 auto 需要时显示;scroll 总是显示,设置为 auto 即可

5.去除浏览器服务器按钮功能

我们在点击图片时可以看到有一个浏览服务器的功能,我们现在要将其去除,同样在该页面看属性,找到对应的文件,这个窗口对应的文件为:

fckeditor/editor/dialog/fck_image.html

在页面里找到对应按钮,注释即可!另外,该窗口的预览中带有大量问题,如果想去除或更改以同样方式找到对应的页面,修改或删除即可,注意是在文本框内右键看属性

 

FCKEditor深度涉险

1.允许上传

(1)       下载官方的Java包,内含有四个JAR,其实需要的是五个,所以下载WAR包,解压,拷贝示例工程内的Jar包!

(2)       解压fckeditor-java-2.5-bin.zip,目录内有一个site是使用文档,打开文档找到Connector Servlet

3)按照说明先走两步第一:配置Servlet,将提供的内容拷贝到Web.xml中即可!第二:在Src下配置一个Connector Servlet属性文件,文件内容直接拷贝!而后我们还要建立上传的文件夹,默认为:/fckeditor/userfiles/image/ ,建立此目录

到此,图片上传功能完成!

关于中文乱码问题,最好的解决方法是不是用中文,在存储图片时修改源代码,将文件名称进行修改,我们找到FCKServlet,不同版本的Servlet也不同。

本人使用fckeditor-java-2.5-bin.zipWeb中对应的Servlet为:

        <servlet-class>
          net.fckeditor.connector.ConnectorServlet
      </servlet-class>

 

找到该源文件,附加上源码,源码可以从官方同一个位置下载,我们找不到关于文件上传有关的代码,那么我们使用 Ctrl 进入下一个流程类,我这里进入了 同包下的Dispatcher这是一个普通类,知道Post方法,可以看到上传的流程。流程中好几个变量都是引用的上传文件名,其实我们要修改的是 最初文件名 sanitizedFileName:我们使用UUID唯一标识来做:

我们不能修改源代码,其实我们可以这样做,建立一个和Dispatcher同名的包和类,然后将代码全部复制到该文件,删除Jar中的Dispatcher.class

修改sanitizedFileName为唯一标识:

 

//将文件重命名
sanitizedFileName = UUID.randomUUID().toString() + 
sanitizedFileName.substring(sanitizedFileName.lastIndexOf("."));

 

注意加上文件的后缀名,不然保存失败!

这样就避免了中文乱码和文件同名覆盖的问题!

2.控制上传类型

这个功能是通过修改配置文件类型来实现的,详细参考可以看文档

核心包中也有相应配置,package net.fckeditor.handlers 包中有一个配置文件

Default. Properties配置的前四项就是配置文件,图片,Flash,媒体的格式的配置,我们将其拷贝到我们的配置文件fckeditor.properties中,然后进行相应修改,这样服务器端的控制已经达到,还要修改客户端的配置文件,同样是在fckconfig.js 中,找到

 

FCKConfig.ImageUpload = true ;
FCKConfig.ImageUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=Image' ;
FCKConfig.ImageUploadAllowedExtensions	= ".(jpg|gif)$" ;		// empty for all
FCKConfig.ImageUploadDeniedExtensions	= "" ;

 

修改FCKConfig.ImageUploadAllowedExtensions属性,注意增加或修改,格式是以竖线分割的,修改发布后就会在服务器端和客户端产生类型控制!

对于Flash和媒体的配置都是一样的!

3.控制上传文件大小(目前不同版本实现可能不同,但机制是一样的)

和上传增加自动标识列一样,同样是在增加UUIDPost方法中进行判断文件大小,FCK并没有提供这种机制

在上传的对象中有判断文件大小的方法

//控制上传文件大小
if(uplFile.getSize() > 10 * 1024){
	LocalizedMessages lm = LocalizedMessages.getInstance(ThreadLocalData
			.getRequest());
	return  new UploadResponse(204, null, null, lm
			.getInvalidCurrentFolderSpecified());
}

 

以上如果文件大于10K的话就不能通过,关于返回的对象,其实是供客户端调用的。

对于这个对象可以参考其他判断中返回的对象例如:

在上传一开始就有如下判断:

 

 

if (!RequestCycleHandler.isEnabledForFileUpload(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 {

 

就是如果条件不符合,则有一个UploadResponse对象被返回,到这个类的各个方法中看看,进入UploadResponse类可以看到他定义了许多供返回的常量

/** Creates a <code>INVALID RESOURCE TYPE</code> error. */
	public static UploadResponse getInvalidResourceTypeError() {
		LocalizedMessages lm = LocalizedMessages.getInstance(ThreadLocalData
				.getRequest());
		return new UploadResponse(EN_CUSTOM_ERROR, null, null, lm
				.getInvalidResouceTypeSpecified());
	}

 

通过他的一个方法可以看出,创建一个LocalizedMessages对象,然后返回一个带有标识的UploadResponse对象。所以在文件太大不符合要求时可以这样返回

LocalizedMessages lm = LocalizedMessages.getInstance(ThreadLocalData
			.getRequest());
	return  new UploadResponse(204, null, null, lm
			.getInvalidCurrentFolderSpecified());

 

这个204是自己定义的,但是不要和FCK定义的重复,即不要和UploadResponse类中定义的常量重复。

返回204 标识后客户端会接受,接收错误码的页面是 fck_image.html ,具体处理错误码的地方是该页面引入的一个JS文件,在fck_image.js中控制的找到function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )

方法,可以看到,这里接受的错误码!在这里增加自己的错误码,并给予提示。同时可以在这里修改文件错误时各种情况的提示信息

增加

 

case 204:
	alert( "文件大小超出限制" ) ;
	return ;

 ,这样就完成了,上传图片时不能大于10K的功能!注意的是,所有上传类型都不能大于10K,这样设置的话

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    FCKEDITOR 常用上传方法

    FCKEditor使用连接器来与服务器进行通信,处理文件的创建、删除、移动等操作。例如: - `FCKeditor/editor/filemanager/connectors/asp/connector.asp` - `FCKeditor/editor/filemanager/connectors/...

    FCKeditor(在线文本编辑器)

    接着,在表单的textarea元素上添加一个特定的ID,然后使用JavaScript代码初始化FCKeditor,替换该textarea。 2. **配置FCKeditor** FCKeditor的配置文件通常名为`fckconfig.js`,在这里可以设置编辑器的各种选项。...

    fckeditor全功能的例子

    2. **sample01.html**:这通常是一个演示或教程页面,展示了FCKeditor如何在实际网页中嵌入和使用。通过这个文件,你可以看到编辑器的基本配置和初始化代码。 3. **fckconfig.js**:这是FCKeditor的主要配置文件。...

    FCKeditor.Net水印功能源码

    在提供的文件列表中,我们可以看到多个`sample01.aspx`、`sample02.aspx`和`sample04.aspx`等示例页面,这些是FCKeditor.Net的演示页面,用于展示编辑器的各种功能,包括水印。在这些示例中,我们可以通过查看源代码...

    在线编辑器2.6fckeditor_2[1].6_lite3_table

    使用这个版本的FCKeditor,开发者可以方便地在网页中嵌入一个功能丰富的文本编辑区域,让用户能够创建带有表格的复杂内容。通过调整`fckconfig.js`,可以定制编辑器的外观和功能,满足特定项目的需求。同时,`...

    科帮网javaWeb计算机配件报价系统项目源码.zip

    - 样例文件(如sample01.afp至sample04.afp)可能是为了展示FCKeditor的不同功能或使用方法,例如插入图片、格式化文本等。 3. **文件上传和管理**: - `filemanager`目录下的`connectors`子目录,包含ASP和ASPx...

    xml 做数据库的 留言板 【——转——】

    &lt;datetime&gt;2022-03-01 14:30:00 这是我的第一条留言! 用户B &lt;datetime&gt;2022-03-02 09:45:00 很高兴看到这个XML留言板! &lt;!-- 更多留言... --&gt; ``` XMLGuest可能是一个独立的XML文件,或者是一个与...

    VS2005(c#)项目调试问题解决方案集锦

    **问题描述:** 在使用FCKeditor富文本编辑器时,可能因配置问题无法正常加载。 **原因分析:** `web.config`文件中的路径配置不正确。 **解决方案:** - 确保`web.config`文件中包含正确的路径配置: ```xml ...

    播客 sqlserver2005 +jsp

    运行程序前,还需要到网上下载fckeditor,拷贝到01文件夹下,替换原fckeditor文件夹。 运行程序,打开进入论坛页面,如图1.1所示。单击“进入论坛”超链接,即可进入论坛主页面,如图1.2所示。

    AACMS文章管理系统 v2.8.rar

    具有强大的模板引擎,很轻松就可以做出模板界面来。.单页功能等。 AACMS文章管理系统功能介绍 01.基于PHP MYSQL架构。 ...02.强大的模板引擎,很轻松就可以做出模板界面来。...5、修复fckeditor不能上传图片bug

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Robsofa开源论坛 v1.1.zip

    * 本站独家开发的Session系统, Cookies系统, 独创最优算法, 使用简介明了, 确保系统承受更大负载 * 独创动态BBCODE解析类, 让BBCODE扩展更加方便。 * 独创Ajax文件上传, 让体验更加美好。 * …… Robsofa...

    信息技术教学辅助平台1.04版源码

    2010.04.06 发现sql2000脚本无默认值,现已更正,可以使用sql2000查询器执行脚本生成数据库了,使用sql2000数据库工作正常 2010.03.29添加课程时,由于备课时间超过session默认20分钟后无法在Fckeditor编辑器中上传...

    CKEditor 4.10.1 中文版.zip

    CKEditor是新一代的FCKeditor,是一个重新开发的版本,CKEditor是全球最优秀的网页在线文字编辑器之一,因其惊人的性能与可扩展性而广泛的被运用于各大网站。CKEditor 4.10.1 中文版 更新日志:2018-11-01已修复问题...

    将博CMS企业版V1.7.3源码 JumboECMS173.rar

    2015-02-01(V1.6.6) 1.修正了KindEditor上传有误缺dll的BUG 2.修正了jcms:categoryloop标签parentid为空时报错的BUG 3.修正了HTML5皮肤下加载慢的BUG 2014-09-26(V1.6.5) 1.由于fckeditor不兼容IE11,替换为...

    DES算法实现 DES.rar

    2015-02-01(V1.6.6) 1.修正了KindEditor上传有误缺dll的BUG 2.修正了jcms:categoryloop标签parentid为空时报错的BUG 3.修正了HTML5皮肤下加载慢的BUG 2014-09-26(V1.6.5) 1.由于fckeditor不兼容IE11,替换为...

    PHP-PDF-Rechnung-开源

    `sample01-fckeditor.php`和`sample02-fckeditor.php`看起来是使用FCKeditor的示例文件,FCKeditor是一个流行的在线文本编辑器,用户可以通过它在浏览器中编辑发票的详细内容,如备注或条款。 `navigation.php`、`...

    十五工作室.rar

    Ver 0.0.1 (2008-01-03) 2008原始版的整站程序,集成FCKEditor 原本是一个传奇私服的公告板,数据结构极尽简单 后续将有很多的内容跟进。——如果七月十五不懒的话 (弱弱的传来一声:七月十五不懒的话,猪都会上树...

    honobbs论坛系统最新版

    │ │ └─fckeditor (3 folders, 13 files, 178.02 KB, 2.10 MB in total.) │ │ │ │ _documentation.html 875 bytes │ │ │ │ _whatsnew.html 106.14 KB │ │ │ │ fckconfig.js 9.39 KB │...

    ExtAspNet_v2.3.2_dll

    -修正DatePicker中的一个bug(31/01/2010将会返回NULL)使用DateFormatString来生成SelectedDate属性(feedback:OktaEndy)。 -修正extjs最新版本(v3.2.2)中的一个bug,如果下拉列表中存在两个相同的Text,则...

Global site tag (gtag.js) - Google Analytics