CKFounder配置,使用

以FCKeditor_2.6.3为例:

FCKeditor的主页:

http://www.fckeditor.net

FCKeditor.zip

客户端:

FCKeditor_2.6.3.zip

需要服务器端支持:文件上传

FCKeditor.Java:

fckeditor-java-2.4-bin.zip

源码:

fckeditor-java-2.4-src.zip

演示工厂:

fckeditor-java-demo-2.4.war

使用时直接放到(正在运行的)Tomacat的webapps目录下即可。

访问:http://localhost:8080/fckeditor-java-2.4/

demo:

E:/../FCKeditor_2.6.3\fckeditor\_samples\default.html

查看Demo源码时可以到:

工程里面的Jsp文件目录中查找相应的jsp文件。


首先,将FCKeditor_2.6.3解压后-->fckeditor-->拷到项目的web-Root目录下

-->安装fckeditor

调用方式:

1。通过Javascript调用

2. 在JSP中通过自定义标签调用

--->通过javascript调用:

demo:

E:/../FCKeditor_2.6.3\fckeditor\_samples\default.html

右键查看源文件;

使用步骤:

1.引入jar包:

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

2.

方法一:

创建并且输出 一个编辑器:

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

var oFCKeditor = new FCKeditor(‘FCKeditor1‘);

oFCKeditor .BasePath ="/fckeditor/";

oFCKeditor.Create();

</script>

方法二:

用编辑器替换Textarea元素

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

window.onload=function(){

var oFCKeditor = new   FCKeditor(‘MyTextarea‘);

oFCKeditor .BasePath ="/fckeditor/";

oFCKeditor.ReplaceTextarea();

}

</script>

IN<BODY> add the below code to replace an existing TEXTAREA in the page;

<textarea id="MyTextarea" > This is <b>the</b> initial value.</textarea>

方法三:

暂时没写》

3.

实例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head >

<title >test1.html</title >

<meta http-equiv= "keywords" content="keyword1,keyword2,keyword3" >

<meta http-equiv= "description" content="this is my page" >

<meta http-equiv= "content-type" content="text/html; charset=UTF-8" >

<!--<link rel=" stylesheet" type="text/css" href="./styles.css">-->

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

</head >

<body >

<script type="text/javascript">

var oFckeditor = new FCKeditor(‘FCKeditor1‘ );

oFckeditor .BasePath= "/FCKEditTest/fckeditor/" ;

oFckeditor.Create ();

</script>

</body >

</html>

FCKEditTest是项目名称

实例2:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head >

<title >test2.html</title >

<meta http-equiv= "keywords" content="keyword1,keyword2,keyword3" >

<meta http-equiv= "description" content="this is my page" >

<meta http-equiv= "content-type" content="text/html; charset=UTF-8" >

<!--<link rel=" stylesheet" type="text/css" href="./styles.css">-->

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

<script type="text/javascript">

window.onload =function(){

var oFCKeditor = new FCKeditor( ‘MyTextarea‘ );

oFCKeditor.BasePath ="fckeditor/";

oFCKeditor.ReplaceTextarea ();

}

</script>

</head >

<body >

<textarea rows="4" cols="60" name="MyTextarea" >this is value</ textarea>

</body >

</html>

4.总结:

1.BasePath要正确的设置

2.BasePath一定要以/结尾


--->在JSP中通过自定义标签调用

Congfiguration File   对所有的fckeditor有效

主jar包:

fackconfig.js 配置

一般我们使用额外的配置文件覆盖。

新建Myconfig.js配置文件

在fckconfig.js的

FCKEditTest:当前站点的位置

启用Myconfig.js配置文件

FCKConfig.CustomConfigurationsPath = ‘/FCKEditTest/MyConfig.js‘ ;

设置fckconfig.js中

FCKConfig .AutoDetectLanguage   =true ;(会自动选用语言)

Myconfig.js中设置(会覆盖fckeditor.js中的该配置)

FCKConfig .AutoDetectLanguage   =false ;

fckeditor 默认语言(英文)

FCKConfig.DefaultLanguage      = ‘en‘ ;

fckeditor 默认语言(法文)

FCKConfig .DefaultLanguage      =‘fr‘ ;

在页面的调用代码中对FCKeditor的实例进行配置

:仅仅在当前的实例中生效

<script type="text/javascript" >

var oFckeditor = new FCKeditor(‘FCKeditor1‘ );

oFckeditor .BasePath= "/FCKEditTest/fckeditor/" ;

oFckeditor.Config[ "CustomConfigurationsPath" ]="/FCKEditTest/MyConfig.js" ;

oFckeditor.Create ();

</script>

小结:

IE中Ctrl+F5 火狐中Shift+Ctrl+R

一般使用Fckeditor时需要修改一些配置:

1.自定义ToolbarSet(工具集),去掉一些功能

2.加上几种常用的字体(加上中文字体,宋体。)

3. 修改“回车”和“shift+回车”的换行行为

(默认回车隔行换,shift+回车才是换行)

4.修改编辑区的样式文件

5.更换表情图片

实例:

实现方法:

1.去掉一些功能:

config.js配置文件中默认有2中工具集:

FCKConfig.ToolbarSets[ "Default"] = [

[‘Source‘, ‘DocProps‘,‘-‘ ,‘Save‘, ‘NewPage‘,‘Preview‘ ,‘-‘, ‘Templates‘],

[‘Cut‘, ‘Copy‘,‘Paste‘ ,‘PasteText‘, ‘PasteWord‘,‘-‘ ,‘Print‘, ‘SpellCheck‘],

[‘Undo‘, ‘Redo‘,‘-‘ ,‘Find‘, ‘Replace‘,‘-‘ ,‘SelectAll‘, ‘RemoveFormat‘],

[‘Form‘, ‘Checkbox‘,‘Radio‘ ,‘TextField‘, ‘Textarea‘,‘Select‘ ,‘Button‘, ‘ImageButton‘,‘HiddenField‘ ],

‘/‘,

[‘Bold‘, ‘Italic‘,‘Underline‘ ,‘StrikeThrough‘, ‘-‘,‘Subscript‘ ,‘Superscript‘] ,

[‘OrderedList‘, ‘UnorderedList‘,‘-‘ ,‘Outdent‘, ‘Indent‘,‘Blockquote‘ ,‘CreateDiv‘] ,

[‘JustifyLeft‘, ‘JustifyCenter‘,‘JustifyRight‘ ,‘JustifyFull‘] ,

[‘Link‘, ‘Unlink‘,‘Anchor‘ ],

[‘Image‘, ‘Flash‘,‘Table‘ ,‘Rule‘, ‘Smiley‘,‘SpecialChar‘ ,‘PageBreak‘] ,

‘/‘,

[‘Style‘, ‘FontFormat‘,‘FontName‘ ,‘FontSize‘] ,

[‘TextColor‘, ‘BGColor‘],

[‘FitWindow‘, ‘ShowBlocks‘,‘-‘ ,‘About‘]        // No comma for the last row.

] ;

FCKConfig.ToolbarSets[ "Basic"] = [

[‘Bold‘, ‘Italic‘,‘-‘ ,‘OrderedList‘, ‘UnorderedList‘,‘-‘ ,‘Link‘, ‘Unlink‘,‘-‘ ,‘About‘]

] ;

可参考文档区别各个功能:

添加字体:MyConfig.js

FCKConfig.FontNames        = ‘宋体;楷体_GB2312;黑体;隶书;Times New Roman;Arial‘ ;

修改键位:

FCKConfig.EnterMode = ‘br‘ ;           // p | div | br

FCKConfig .ShiftEnterMode = ‘p‘ ;  // p | div | br

表情图片:

//表情图片所在路径是文件夹

FCKConfig.SmileyPath   = FCKConfig. BasePath + ‘images/smiley/msn/‘ ;

//显示的图片

FCKConfig .SmileyImages = [‘regular_smile.gif‘,‘sad_smile.gif‘ ,‘wink_smile.gif‘, ‘teeth_smile.gif‘,‘confused_smile.gif‘ ,‘tounge_smile.gif‘, ‘embaressed_smile.gif‘,‘omg_smile.gif‘ ,‘whatchutalkingabout_smile.gif‘, ‘angry_smile.gif‘,‘angel_smile.gif‘ ,‘shades_smile.gif‘, ‘devil_smile.gif‘,‘cry_smile.gif‘ ,‘lightbulb.gif‘, ‘thumbs_down.gif‘,‘thumbs_up.gif‘ ,‘heart.gif‘, ‘broken_heart.gif‘,‘kiss.gif‘ ,‘envelope.gif‘] ;

FCKConfig.SmileyColumns = 8 ;//每行显示的表情数目

FCKConfig.SmileyWindowWidth       = 320 ;

FCKConfig.SmileyWindowHeight   = 210 ;

图片框设置:

fckeditor-》》editor-》》dialog-- 》 --》//dialog.SetAutoSize( true ) ; //显示表情图片根据图片的大小修改当前窗口的大小

显示滚动条:

fckeditor-》》editor-》》dialog-- 》 --》body  overflow:auto;

/*

是否启用自己配置的MyConfig配置文件

*/

FCKConfig.CustomConfigurationsPath =FCKConfig. EditorPath + ‘MyConfig.js‘ ;

文件上传:

xml文件中配置:

<!-- ~~~~~~~~~~~~  FCKeditor 有关配置  ~~~~~~~~~~~~~~~~~~ -->

<servlet >

<servlet-name> Connector</servlet-name >

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

<load-on-startup> 1</ load-on-startup>

</servlet >

<servlet-mapping >

<servlet-name> Connector</servlet-name >

<url-pattern> /fckeditor/editor/ filemanager/connectors/*</url-pattern >

</servlet-mapping >

<!-- ~~~~~~~~~~~~~~  FCKeditor 有关配置结束  ~~~~~~~~~~~~~~~~~ -->

项目文件src下创建

fckeditor.properties:

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

解决图片上传中文乱码问题:

1.post方式提交服务器,提交表单时按照页面编码对其内容进行编码

2.服务器端没有用正确的编码解码出错

分析:fckeditor--》editor--》filemanager--》browser--》default--》frmupload.html

查看该文件的:判断是否是

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


引用中文名的图片不能正常显示问题:

1. 配置解码方式: 修改URIEncoding

可以对Tomacat服务器中的server.xml的

<Connector port ="8080" protcol="HTTP/1.1"

connectionTimeout="2000"

redirectPort="8443"

URIEncoding="UTF-8"

/>

但是不推荐你使用,因为使用这种方式可能会导致网页中文参数解析问题。

2.避免出现引用中文名字图片的情况

修改上传文件的ConnectorServlet.java

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

logger.debug("Entering Connector#doPost");

response.setCharacterEncoding( "UTF-8");

response.setContentType( "text/html; charset=UTF-8");

response.setHeader( "Cache-Control", "no-cache");

PrintWriter out = response.getWriter();

String commandStr = request.getParameter("Command" );

String typeStr = request.getParameter("Type" );

String currentFolderStr = request.getParameter("CurrentFolder" );

logger.debug("Parameter Command: {}", commandStr);

logger.debug("Parameter Type: {}" , typeStr);

logger.debug("Parameter CurrentFolder: {}", currentFolderStr);

UploadResponse ur;

// if this is a QuickUpload request, ‘commandStr‘ and ‘currentFolderStr‘

// are empty

if (Utils.isEmpty(commandStr) && Utils.isEmpty(currentFolderStr)) {

commandStr = "QuickUpload";

currentFolderStr = "/";

}

if (!RequestCycleHandler.isEnabledForFileUpload(request))

ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR , nullnull,

Messages. NOT_AUTHORIZED_FOR_UPLOAD);

else if (!CommandHandler.isValidForPost(commandStr))

ur = new UploadResponse(UploadResponse.SC_ERROR , nullnull , Messages.INVALID_COMMAND);

else if (typeStr != null && !ResourceTypeHandler.isValid(typeStr))

ur = new UploadResponse(UploadResponse.SC_ERROR , nullnull , Messages.INVALID_TYPE);

else if (!UtilsFile.isValidPath(currentFolderStr))

ur = UploadResponse.UR_INVALID_CURRENT_FOLDER ;

else {

ResourceTypeHandler resourceType = ResourceTypeHandler.getDefaultResourceType(typeStr);

String typeDirPath = null;

if ("File" .equals(typeStr)) {

// 文件所存放的路径为 ${application.path}/WEB-INF/userfiles/

typeDirPath = getServletContext().getRealPath("WEB-INF/userfiles/" );

}

else {

String typePath = UtilsFile.constructServerSidePath(request, resourceType);

typeDirPath = getServletContext().getRealPath(typePath);

}

File typeDir = new File(typeDirPath);

UtilsFile. checkDirAndCreate(typeDir);

File currentDir = new File(typeDir, currentFolderStr);

if (!currentDir.exists())

ur = UploadResponse.UR_INVALID_CURRENT_FOLDER ;

else {

String newFilename = null;

FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding( "UTF-8");

try {

List<FileItem> items = upload.parseRequest(request);

// We upload only one file at the same time

FileItem uplFile = items.get(0);

String rawName = UtilsFile.sanitizeFileName(uplFile.getName());

String filename = FilenameUtils.getName(rawName);

String baseName = FilenameUtils.removeExtension(filename);

String extension = FilenameUtils.getExtension(filename);

// 如果这个文件的扩展名不允许上传

if (!ExtensionsHandler.isAllowed(resourceType, extension)) {

ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION );

}

// 如果文件大小超出限制

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

// 传递一个自定义的错误码

ur = new UploadResponse(204);

}

// 如果不存在以上情况, 则 保存文件

else {

// construct an unique file name

// 使用 UUID 做为文件名, 并放到按照日期生成的文件夹中

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

filename = makeFileName(currentDir .getPath(), filename);

File pathToSave = new File(currentDir, filename);

int counter = 1;

while (pathToSave.exists()) {

newFilename = baseName.concat("(" ).concat(String.valueOf (counter))

.concat( ")").concat("." ).concat(extension);

pathToSave = new File(currentDir, newFilename);

counter++;

}

if (Utils.isEmpty(newFilename))

ur = new UploadResponse(UploadResponse.SC_OK , UtilsResponse

constructResponseUrl(request, resourceType, currentFolderStr,

true, ConnectorHandler.isFullUrl()).concat(filename));

else

ur = new UploadResponse(UploadResponse.SC_RENAMED ,

UtilsResponse. constructResponseUrl(request, resourceType,

currentFolderStr, true, ConnectorHandler.isFullUrl())

.concat(newFilename), newFilename);

// secure image check

if (resourceType.equals(ResourceTypeHandler.IMAGE)

&& ConnectorHandler.isSecureImageUploads()) {

if (UtilsFile.isImage(uplFile.getInputStream()))

uplFile.write(pathToSave);

else {

uplFile.delete();

ur = new UploadResponse(UploadResponse.SC_INVALID_EXTENSION );

}

}

else

uplFile.write(pathToSave);

}

catch (Exception e) {

ur = new UploadResponse(UploadResponse.SC_SECURITY_ERROR );

}

}

}

out.print(ur);

out.flush();

out.close();

logger.debug("Exiting Connector#doPost");

}

     public static String makeFileName(String basePath, String filename) {

String subPath = sdf.format(new Date());

File dir = new File(basePath + "/" + subPath);

// 如果目录不存在, 就递归的创建, 已存在则不会重新创建

if (!dir.exists()) {

if (!dir.mkdirs()) {

throw new IllegalStateException("创建目录失败:" + dir.getPath());

}

}

String uuid = UUID.randomUUID().toString();

String extension = FilenameUtils.getExtension(filename);

return subPath + "/" + uuid + "." + extension;

}


配置允许上传的文件类型:

Connector 连接器的配置:

方式1:

配置允许上传的文件扩展名的列表

方式2:

配置禁止上传的文件扩展名的列表

默认使用第一种:

提供了4中文件类型所以有:

默认的配置文件在,fckeditor-java-core-2.4.jar 核心包中:

net.fckeditor.handlers    (handlers操作者)-->default.properties 配置文件

通过在我们自己的fakeditor.properties中覆盖相应的属性:


修改允许上传文件的大小:

自定义错误:查看已经使用的错误ma:

fckeditor-->  editor --> dialog --> fck_imgage --> fck_image.js

function OnUploadCompleted( errorNumber , fileUrl, fileName, customMsg )

{

// Remove animation

window.parent.Throbber .Hide () ;

GetE( ‘divUpload‘ ).style .display  = ‘‘ ;

switch ( errorNumber )

{

case 0 :    // No errors

alert ( ‘Your file has been successfully uploaded‘ ) ;

break ;

case 1 :    // Custom error

alert ( customMsg ) ;

return ;

case 101 :  // Custom warning

alert ( customMsg ) ;

break ;

case 201 :

alert ( ‘A file with the same name is already available. The uploaded file has been renamed to "‘ + fileName + ‘"‘ ) ;

break ;

case 202 :

alert ( ‘Invalid file type‘ ) ;

return ;

case 203 :

alert ( "Security error. You probably don‘t have enough permissions to upload. Please check your server." ) ;

return ;

case 204 ://自定义的错误回调

alert ( "文件大小超出上限." ) ;

return ;

case 500 :

alert ( ‘The connector is disabled‘ ) ;

break ;

default :

alert ( ‘Error on file upload. Error number: ‘ + errorNumber ) ;

return ;

}

sActualBrowser = ‘‘ ;

SetUrl( fileUrl ) ;

GetE(‘frmUpload‘ ).reset () ;

}

查找出已经使用的

ConnectorSeervlet.java 中配置

// 如果文件大小超出限制

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

// 传递一个自定义的错误码

ur = new UploadResponse(204);//引用自定义错误!

}

时间: 2024-10-15 07:29:43

CKFounder配置,使用的相关文章

Win10下IIS配置、项目发布、添加网站

Win10下IIS配置 1.找到控制面板:[开始]菜单鼠标右击,打开[控制面板] 2.打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] 3. 开始修改IIS了,我是这样勾上的,有可能比较多. 4. 验证IIS是否正确安装,等待几分钟后IIS配置完成.在浏览器输入http://localhost/iisstart.htm会出现 IIS安装成功页面.第一次修改的时候出现了成功页面,但是后来删除了IIS中默认的网站就打不开了,但是不影响的.

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;

IDEA 配置maven

编写Maven的settings.xml文件内容如下 引入阿里镜像和maven在中国的中央仓库镜像 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc

华为交换机配置telnet和SSH登录设备(简单实用版)

Telnet是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,极大的提高了用户操作的灵活性. 测试拓扑图 配置telnet: 1.1普通认证登录

win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址

近日安装原版Win7系统打完网卡驱动补丁后,给电脑设置了固定的IP地址后一切正常,但是电脑重启后发现上不了网了,右下角网络图标有个感叹号,打开网络和共享中心-->本地连接-->详细信息-->发现IPv4的地址与ipconfig /all得到的IP地址一致,均显示为:自动配置IPv4地址:169.254.123.188(首选) 但是查看本地连接-->属性里看到之前设置的固定IP地址是没有问题的, 所以想到了应该是电脑启用了自动配置IPv4功能,导致了固定IP无法分配给电脑, 尝试用命

PL/SQL配置大小写转换等快捷键

Tools(工具) --> Preferences(首选项) --> Key Configuration(键配置) 然后修改自己需要的快捷键方式 作者:itmyhome

联想X270——正版Win10换win7之BIOS配置及系统安装

笔记本安装系统现在是越来越困难了,最早的万能大法Legacy+IDE+win7纯净版光盘的方法已经越来越不适应. 公司新配了出差笔记本联想X270,不再有可刻录光驱,印象当中ThinkPad必定有Thinkvantage,这代也没用了,标配固态硬盘+机械硬盘可以让系统开机速度达到8秒,Fn的组合键在Win10中也运用的流畅自如,内外双电池的配备使得你即便拔了可拆卸电池也不会关机. 即便是这样,还是得到需求,要求安装成Win 7. 下面分享一下我的安装过程. 我这个版本的X270的CPU是6代i5

ubuntu配置静态路由及重启生效

ubuntu配置静态路由及重启生效 第一种方法:使用route命令(添加临时路由) 添加到主机的路由 # route add -host 192.168.1.123 dev eth0 # route add -host 192.168.1.123 gw 192.168.1.1 添加到网络的路由 # route add -net 192.168.1.123 netmask 255.255.255.0 eth0 # route add -net 192.168.1.123 netmask 255.2