fckeditor在本地正常显示,发布到服务器上后不显示了,Fckeditor常见使用问题

本文详细介绍了FCKeditor的三种使用方式,包括直接创建、替换textarea和自定义标签,并探讨了其配置文件fckconfig.js的设置。重点讨论了如何处理文件上传,包括中文文件名乱码、创建中文目录名、引用中文图片名等问题,以及上传文件类型的控制和文件大小的限制。此外,还讲解了如何获取编辑内容和在实际应用中禁用某些功能。
摘要由CSDN通过智能技术生成

一 FCK的使用方式常见有三种:

第一: 引用fckeditor.js然后创建

//var FCKeditor = function(instanceName,width,height,toolbarSet,value);

//创建FCKeditor实例,名称为FCKeditor1

var oFCKeditor = new FCKeditor('FCKeditor1');

oFCKeditor.BasePath = "/fckeditor/fckeditor/"; //前面为工程名称,设置编辑器的基准路径

oFCKeditor.Width="50%";  //设置宽度

oFCKeditor.Height="400"; //设置高度

oFCKeditor.ToolbarSet = "Basic";  //工具集

oFCKeditor.Value="";    //初始值

oFCKeditor.Create();    //创建一个编辑器

第二: 替换textarea方式

window.onload = function(){

var oFCKeditor = new FCKeditor('MyTextarea');

oFCKeditor.BasePath = "/fckeditor/fckeditor/";

//设置启用新的自定义配置文件,也可以在fckconfig.js文件中进行

//这样的配置FCKConfig.CustomConfigurationsPath = FCKConfig.EditorPath + 'myconfig.js' ;

oFCKeditor.Config["CustomConfigurationsPath"]="/fckeditor/fckeditor/myconfig.js";

oFCKeditor.ToolbarSet="myToolbar";

oFCKeditor.Width="80%";

oFCKeditor.Height="400";

oFCKeditor.ReplaceTextarea();

}

this is the initial value.

第三: 自定义标签

二 FCKeditor的配置文件fckconfig.js

1. basePath以'/'开头,并且这个'/'代表当前工程的路径

2. 一定要设置value属性的值,并且值不能是空字符串

3. 修改设置主配置文件fckconfig.js,方式有二:直接修改原配置文件;建一个新的配置文件覆盖原来的配置文件

4. 新建一个配置文件myconfig.js,在里边进行相关属性配置

5. 要使用新配置文件的方式有二:

5.1 在主配置文件中引入FCKConfig.CustomConfigurationsPath = '/fckeditor/myconfig.js' ;

5.2 在创建实例时引用 oFCKeditor.Config["CustomConfigurationsPath"]="/fckeditor/myconfig.js";

前一种是影响所有应用,后一种是针对某一个应用

FCK的常用配置:

1.0 ToolbarSet工具集

实施:修改fckconfig.js里的FCKConfig.ToolbarSets配置方式采用新配置文件的第二种形式来完成;

将FCKConfig.ToolbarSets所有配置参数拷贝到myconfig.js中将不用的参数数据删除,结果参见

fcktwo.jsp

1.1 修改字体种类

1.2 修改'回车'和'Shift+回车'的行为(默认'回车是段落,shift+回车是换行')

1.3 修改编辑区样式文件

1.4 增加表情图片

以上所有实现详见:myconfig.js文件,该文件路径:fckeditor/目录下,此文件编码格式为UTF-8

三 FCK文件上传:

(一)设置文件上传步骤有二:

a.首先在web.xml文件中配置一个servlet,再将映射到指定的路径上

Connector

net.fckeditor.connector.ConnectorServlet

1

Connector

/fckeditor/editor/filemanager/connectors/*

b.其次新建一个配置文件fckeditor.properties并且把它放到classpath路径下

配置文件内容:connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl

(二)处理上传中文文件名称乱码:

原因:文件上传保存时,文件名就保存的乱码;但有两个环节可能造成,1: 上传页面设置的编码不支持中文;2 服务器端处理的程序造成的

结果是由第二种原因造成:解决办法 将源代码打开拷贝出来新建一个同名的类,再把源码copy进去,紧接将web.xml的servlet

映射配置修改指向这个新建的servlet

Connector

com.java.web.ConnectorServlet

1

(三)创建中文目录名时会出现乱码:

解决思路:先检查提交的内容是否被正确编码,再检查服务器端是否正确的解码

问题是在:ConnectorServlet中,在得到新的文件夹名称时没有对中文进行处理

String folderName = request.getParameter("NewFolderName");

folderName = new String(folderName.getBytes("iso8859-1"),"UTF-8");

String newFolderStr = UtilsFile.sanitizeFolderName(folderName);

(四)处理引用中文图片名时不能正常显示:

方法一: 修改Tomcat的server.xml中的连接器的配置,添加 URIEncoding="UTF-8" 这样问题就解决了;

原因是: 中文的图片名称在引用时进行了URL编码,在访问服务器上的资源时,连接器首先会对访问的路径时行

解码,而Tomcat默认是以iso8859-1进行解码;而这里就会解释为乱码,这时当然就找不到对应的资源了.

但是这种方法不推荐使用,因为它会造成其它的中文乱码问题出现.

方法二: 在ConnectorServlet中,在保存文件时将保存的文件名替换成UUID

filename = UUID.randomUUID().toString() + "." +extension;

(五)控制上传文件类型

File image flash Media(多媒体文件)

1: 对FCKeditor的配置扩展名

2: 对Connector的配置扩展名列表,控制允许上传文件的类型有两种设置方式:a 设置允许上传文件的扩展名列表.

b 禁止上传文件的扩展名列表.两种方式不能同时使用;默认设置是a

对于这些的配置文件在fckeditor-java-core核心包中的net.fckeditor.handlers包下default.properties文件中

这是服务器端的验证配置,同时还有客户端验证配置,在fckconfig.js中;配置其中之一就可以了

(六)控制上传文件大小

上传文件的机制:表单 ->提交到服务器端(ConnectorServlet)进行处理 ->对不同的处理对应不同的响应信息

->回调函数->打印错误码对应的提示信息

1: 在服务器端的servlet中,在保存文件之前先判断一下文件的大小,如果超出限制,就传递一个自定义的错误码,

并且不再保存文件

2: 修改对应的页面中的回调函数,增加这个自定义的错误码的处理

在文件264行处添加

//如果文件大小超出限制,就传递一个自定义的错误码

else if(uplFile.getSize() > 10 * 1024){

ur = new UploadResponse(204);

}

查找当前页面的方式(因为一个功能页面可以是由多个页面组合而成),在功能处点击右键然后看属性中就有文件的绝对路径

然后在对应的页面(dialog/fck_image/fck_image.js|frmupload.html)中找到请求响应的回调函数进行添加对错误码204的处理.然后就可以了

四 获取FCKeditor编辑内容

request.getParameter("MyTextarea"); //这个名称是创建实例时的名称

如果是自定义标签时,就直接取ID就可以得到喽

五 实际应用

在图片,flash,超连接等功能中都有此项:

在实际应用中,不能让用户使用浏览服务器的功能,因此就在去掉在上传图片的窗口上的相应按钮

在editor/dialog/fck_image.html文件中修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值