- 浏览: 59183 次
- 性别:
- 来自: 上海
最新评论
-
固执先生:
大哥 求javafx源代码
用JavaFX写的网络对战版的俄罗斯方块 -
固执先生:
大哥 膜拜 求代码
用JavaFX写的网络对战版的俄罗斯方块 -
clwbeyond:
你好,我将你的代码重新配置了一下,但是能跑起来了,主要有一个很 ...
修改struts2-showcase动态树,改由从数据表中读取,并且用递归方式生成 -
dracularking:
不错啊 做游戏挺好的
用Java2D做的俄罗斯方块 -
左博涯:
mickey_mjy 写道
拿走了~ 但是图片和flash还有 ...
在项目中整合FCKeditor文本编辑器
(1) 先到http://www.fckeditor.net/download 下载FCKeditor_2.6rc.zip和FCKeditor-2.3.zip。将FCKeditor_2.6rc.zip解压缩,打开解压后的文件夹,将其中的fckeditor改名为FCKeditor整体复制到项目的WebRoot目录下。然后将FCKeditor-2.3.zip压缩包中\web\WEB-INF\lib\目录下的两个jar文件拷到项目的\WEB-INF\lib\目录下,\src\com文件夹整体复制到项目中的src\下。
(2)合并web.xml,打开原项目的web.xml把压缩包中\web\WEB-INF\web.xml中的以下内容复制到其中。
<!-- FCKeditor servlet -->
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<!—此处默认为/UserFiles/,可以修改,前面不需要写”/项目名” -->
<param-value>/项目中用于存放上传文件的文件夹/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>SimpleUploader</servlet-name>
<servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<param-value>/项目中用于存放上传文件的文件夹/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<!—此处默认为false,表示是否开启上传,需要修改 -->
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFile</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFile</param-name> <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsImage</param-name>
<param-value>jpg|gif|jpeg|png|bmp</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsImage</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFlash</param-name>
<param-value>swf|fla</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFlash</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--以下servlet-mapping 添加/FCKeditor与压缩包中整体复制到项目的文件夹路径相对应-->
<servlet-mapping>
<servlet-name>Connector</servlet-name> <url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>
<!-- FCKeditor servlet -->
(3)删除无用文件,删除目录/FCKeditor/下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml,四个文件以外的所有文件。
删除目录/editor/_source, 删除/editor/filemanager/browser/default/connectors/下的所有文件,删除/editor/filemanager/upload/下的所有文件,删除/editor/lang/下的除了en.js, zh.js, zh-cn.js三个文件的所有文件。
(4)修改FCKeditor/fckconfig.js中的配置:
所有js配置文件最好保存成UTF-8格式,源代码要读取其中数据,
修改 FCKConfig.DefaultLanguage = 'zh-cn' ;
把FCKConfig.LinkBrowserURL等的值替换成以下内容:
FCKConfig.LinkBrowserURL=FCKConfig.BasePath+"filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;
FCKConfig.ImageBrowserURL=FCKConfig.BasePath+"filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;
FCKConfig.FlashBrowserURL=FCKConfig.BasePath+"filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;
FCKConfig.LinkUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=Image' ;
FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ;
即在编辑器域内可以使用Tab键。
如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,
在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,
也就是基本的toolbar,找到:
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
这是改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台
页直接访问和上传文件, fckeditor还支持编辑域内的鼠标右键功能。
FCKConfig.ContextMenu= ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField', /*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
这也是改过的把鼠标右键的“链接、图像,FLASH,图像按钮”功能都去掉。
找到: FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
加上几种我们常用的字体
FCKConfig.FontNames
= '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
以下是该文件的具体属性列表:
FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
FCKConfig.EditorAreaStyles = '' ; // 编辑区的样式表风格
FCKConfig.ToolbarComboPreviewCSS =''; //工具栏预览CSS
FCKConfig.DocType = '' ;//文档类型
FCKConfig.BaseHref = ''; // 相对链接的基地址
FCKConfig.FullPage = false ; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
FCKConfig.StartupShowBlocks = false ;//决定是否启用"显示模块"
FCKConfig.Debug = false ;//是否开启调试功能
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //皮肤路径
FCKConfig.PreloadImages=... //预装入的图片
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径
FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言
FCKConfig.DefaultLanguage = 'zh-cn' ; //默认语言
FCKConfig.ContentLangDirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左
FCKConfig.ProcessHTMLEntities = true ; //处理HTML实体
FCKConfig.IncludeLatinEntities = true ; //包括拉丁文
FCKConfig.IncludeGreekEntities = true ;//包括希腊文
FCKConfig.ProcessNumericEntities = false ;//处理数字实体
FCKConfig.AdditionalNumericEntities = '' ; //附加的数字实体
FCKConfig.FillEmptyBlocks = true ; //是否填充空块
FCKConfig.FormatSource = true ; //在切换到代码视图时是否自动格式化代码
FCKConfig.FormatOutput = true ; //当输出内容时是否自动格式化代码
FCKConfig.FormatIndentator = ' ' ; //当在源码格式下缩进代码使用的字符
FCKConfig.StartupFocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上
FCKConfig.ForcePasteAsPlainText = false ; //是否强制粘贴为纯文件内容
FCKConfig.AutoDetectPasteFromWord = true ; //是否自动探测从word粘贴文件,仅支持IE
FCKConfig.ShowDropDialog = true ;//是否显示下拉菜单
FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 0 ;//按下Tab键时光标跳格数,默认值为零为不跳格
FCKConfig.ShowBorders = true ;//合并边框
FCKConfig.SourcePopup = false ;//弹出
FCKConfig.ToolbarStartExpanded = true ;//启动fckeditor工具栏默认是否展开
FCKConfig.ToolbarCanCollapse = true ;//是否允许折叠或展开工具栏
FCKConfig.IgnoreEmptyParagraphValue = true ;//是否忽略空的段落值
FCKConfig.FloatingPanelsZIndex = 10000 ;//浮动面板索引
FCKConfig.HtmlEncodeOutput = false ;//是否将HTML编码输出
FCKConfig.TemplateReplaceAll = true ;//是否替换所有模板
FCKConfig.ToolbarLocation = 'In' ;//工具栏位置,
FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
FCKConfig.BaseHref = ''; // 相对链接的基地址
FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤
FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言
FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言
FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右
FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代
FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码
FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码
FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符
FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记
FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器
FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本
FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 0/1; // TAB是否有效
FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数
FCKConfig.ShowBorders = true/false; // 是否合并边框
FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现
FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏
FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏
FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br
FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br
FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容
FCKConfig.FontColors = ""; // 文字颜色列表
FCKConfig.FontNames = ""; // 字体列表
FCKConfig.FontSizes = ""; // 字号列表
FCKConfig.FontFormats = ""; // 文字格式列表
FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置
FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置
FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器
FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径
FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置
FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数
FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整
FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
上传设置
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php
//第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的,JSP项目这里就不要改了
FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"
//这是两个允许和拒绝上传的文件类型列表
FCKConfig.ImageBrowser = false ;//是否在插入图片功能里面启用服务器文件浏览功能
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
//Type=Image 表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面
FCKConfig.FlashBrowser = false ;//是否在插入flash功能中启用服务器文件浏览功能
FCKConfig.LinkUpload = false ;//是否启用插入链接的快速上传功能
FCKConfig.ImageUpload = false ;//是否启用图片快速上传功能
FCKConfig.FlashUpload = false ;//是否启用flash上传功能
(5) 调用FCKeditor
用Javascript脚本语言调用必须引用脚本文件 <script type="text/javascript" src="<%=request.getContextPath()%>/FCKeditor/fckeditor.js"></script>
然后找到要显示编辑器的标签处进行修改,比如原先的一个struts的文本域为
<html:textarea property="content"></html:textarea>
那么现在就要在它后面加上以下这段javascript脚本。
<script type="text/javascript">
var oFCKeditor = new FCKeditor('content') ; //content与textarea的property或name属性对应
oFCKeditor.BasePath = "<%=request.getContextPath()%>/FCKeditor/" ;
//写明FCKeditor文件夹在项目中的路径
oFCKeditor.Width=450
oFCKeditor.Height = 500;
oFCKeditor.ToolbarSet = "Default" ;//用默认工具栏
oFCKeditor.ReplaceTextarea();
</script>
上面两处都用到了<%=request.getContextPath()%>,这是项目所在的根路径,在项目开发过程中一般为“项目名”,而挂到正式服务器上时一般为空(“”)。
(6)增加视频上传的功能及其工具栏按钮
媒体插件下载地址:
http://www.webmb.com.cn/upload/media_plugin_for_FCKeditor_23_build_1054.rar
安装步骤一: 将 madmedia整个文件夹 拷贝至 editor/plugins/下,找到FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; 这句,查看插件路径是否正确。
安装步骤二:
修改fckconfig.js,在文件末尾增加如下一行代码,FCKConfig.Plugins.Add( 'madmedia', 'en,zh-cn' ) ;
安装步骤三:修改fckconfig.js,找到toolbar按钮设置的部分,将媒体按钮加入toolbar,例如,
原来是,
FCKConfig.ToolbarSets["Default"] = [
['Image','Flash']
]
改为,
FCKConfig.ToolbarSets["Default"] = [
['Image','Flash','MadMedia']
]
FCKConfig.ContextMenu= ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form']
中也可加入
FCKConfig.ContextMenu= ['Generic','Link','Anchor','Image','Flash','MadMedia','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form']
安装步骤四:修改插件中的/FCKeditor/editor/plugins/madmedia/media.js文件,把其中所有的包含”Flash”的字符串用”Link”替换,因为此插件的上传的media文件的存放路径与以Link方式上传文件的目录相同,并不是Flash文件的上传路径。
安装步骤五:为了解决上传中文文件文件名变为乱码的问题需要修改FCKeditor的源代码,在源码的com.fredck.FCKeditor.uploader.SimleUploaderServlet类文件中搜索语句DiskFileUpload upload = new DiskFileUpload();再其后添加一句upload.setHeaderEncoding("UTF-8");编辑完成后把整个源代码的com包重新打成一个.jar包代替原来的.jar包。
(7)解决FCKeditor 与 struts2 上传时出错
原因是struts2的filter拦截了上传文件的动作,
//org.apache.struts2.dispatcher.Dispatcher.java
public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
// don't wrap more than once
if (request instanceof StrutsRequestWrapper) {
return request;
}
String content_type = request.getContentType();
if (content_type != null && content_type.indexOf("multipart/form-data") != -1) {
MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);
request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext));
} else {
request = new StrutsRequestWrapper(request);
}
return request;
}
在这里又找不到MultiPartRequest.class的实现类。于是出错了。
只要不让struts2拦截处理上传事件, url-pattern改为*.action就可以解决
但是因为struts2的tag需要经过过滤器,所以如果你jsp页面上面用到了struts2的tag,那么就要增加一个*.jsp的url-pattern,修改web.xml文件如下:
1. <filter>
2. <filter-name>struts2</filter-name>
3. <filter-class>
4. org.apache.struts2.dispatcher.FilterDispatcher
5. </filter-class>
6. </filter>
7.
8. <filter-mapping>
9. <filter-name>struts2</filter-name>
10. <url-pattern>*.action</url-pattern>
11. </filter-mapping>
12.
13.
14. <filter-mapping>
15. <filter-name>struts2</filter-name>
16. <url-pattern>*.jsp</url-pattern>
17. </filter-mapping>
而上传页面调用时直接用文件名调用(如upload.jsp)。struts2只处理 *.action 的请求。
试了一下。和预想的一样,一切OK。
(8)上传时弹出“Security error. You probably don't have enough permissions to upload. Please check your server.”错误对话框的解决方法。
比如存放上传文件的文件夹是根目录下的upload,不同类型的文件会存到它的不同子文件夹下,比如图片放在子文件夹Image,Flash放在子文件夹Flash,其它文件夹放在子文件夹File(正如在第4点中提到的配置文件fckconfig.js中URLFCKConfig.FlashUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=Flash' ;Type的参数值就是上传到的子文件夹的名称),而这些子文件夹是上传第一个文件时程序自建的,而一般的服务器都不让Internet访问用户有新建文件夹的权限,所以需要把这三个子文件夹事先建好。
拿走了~ 但是图片和flash还有视频上传都有错 !
安装步骤四:修改插件中的/FCKeditor/editor/plugins/madmedia/media.js文件,把其中所有的包含”Flash”的字符串用”Link”替换,因为此插件的上传的media文件的存放路径与以Link方式上传文件的目录相同,并不是Flash文件的上传路径。
注意这步要按我说的改才行!
(2)合并web.xml,打开原项目的web.xml把压缩包中\web\WEB-INF\web.xml中的以下内容复制到其中。
<!-- FCKeditor servlet -->
<servlet>
<servlet-name>Connector</servlet-name>
<servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<!—此处默认为/UserFiles/,可以修改,前面不需要写”/项目名” -->
<param-value>/项目中用于存放上传文件的文件夹/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>SimpleUploader</servlet-name>
<servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
<init-param>
<param-name>baseDir</param-name>
<param-value>/项目中用于存放上传文件的文件夹/</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<!—此处默认为false,表示是否开启上传,需要修改 -->
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFile</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFile</param-name> <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsImage</param-name>
<param-value>jpg|gif|jpeg|png|bmp</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsImage</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>AllowedExtensionsFlash</param-name>
<param-value>swf|fla</param-value>
</init-param>
<init-param>
<param-name>DeniedExtensionsFlash</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--以下servlet-mapping 添加/FCKeditor与压缩包中整体复制到项目的文件夹路径相对应-->
<servlet-mapping>
<servlet-name>Connector</servlet-name> <url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>
<!-- FCKeditor servlet -->
(3)删除无用文件,删除目录/FCKeditor/下除fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml,四个文件以外的所有文件。
删除目录/editor/_source, 删除/editor/filemanager/browser/default/connectors/下的所有文件,删除/editor/filemanager/upload/下的所有文件,删除/editor/lang/下的除了en.js, zh.js, zh-cn.js三个文件的所有文件。
(4)修改FCKeditor/fckconfig.js中的配置:
所有js配置文件最好保存成UTF-8格式,源代码要读取其中数据,
修改 FCKConfig.DefaultLanguage = 'zh-cn' ;
把FCKConfig.LinkBrowserURL等的值替换成以下内容:
FCKConfig.LinkBrowserURL=FCKConfig.BasePath+"filemanager/browser/default/browser.html?Connector=connectors/jsp/connector" ;
FCKConfig.ImageBrowserURL=FCKConfig.BasePath+"filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector" ;
FCKConfig.FlashBrowserURL=FCKConfig.BasePath+"filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector" ;
FCKConfig.LinkUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=File' ;
FCKConfig.FlashUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=Flash' ;
FCKConfig.ImageUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=Image' ;
FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ;
即在编辑器域内可以使用Tab键。
如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,
在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,
也就是基本的toolbar,找到:
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
这是改过的Basic,把图像功能去掉,把添加链接功能去掉,因为图像和链接和flash和图像按钮添加功能都能让前台
页直接访问和上传文件, fckeditor还支持编辑域内的鼠标右键功能。
FCKConfig.ContextMenu= ['Generic',/*'Link',*/'Anchor',/*'Image',*/'Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField', /*'ImageButton',*/'Button','BulletedList','NumberedList','TableCell','Table','Form'] ;
这也是改过的把鼠标右键的“链接、图像,FLASH,图像按钮”功能都去掉。
找到: FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
加上几种我们常用的字体
FCKConfig.FontNames
= '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
以下是该文件的具体属性列表:
FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
FCKConfig.EditorAreaStyles = '' ; // 编辑区的样式表风格
FCKConfig.ToolbarComboPreviewCSS =''; //工具栏预览CSS
FCKConfig.DocType = '' ;//文档类型
FCKConfig.BaseHref = ''; // 相对链接的基地址
FCKConfig.FullPage = false ; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
FCKConfig.StartupShowBlocks = false ;//决定是否启用"显示模块"
FCKConfig.Debug = false ;//是否开启调试功能
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //皮肤路径
FCKConfig.PreloadImages=... //预装入的图片
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径
FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言
FCKConfig.DefaultLanguage = 'zh-cn' ; //默认语言
FCKConfig.ContentLangDirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左
FCKConfig.ProcessHTMLEntities = true ; //处理HTML实体
FCKConfig.IncludeLatinEntities = true ; //包括拉丁文
FCKConfig.IncludeGreekEntities = true ;//包括希腊文
FCKConfig.ProcessNumericEntities = false ;//处理数字实体
FCKConfig.AdditionalNumericEntities = '' ; //附加的数字实体
FCKConfig.FillEmptyBlocks = true ; //是否填充空块
FCKConfig.FormatSource = true ; //在切换到代码视图时是否自动格式化代码
FCKConfig.FormatOutput = true ; //当输出内容时是否自动格式化代码
FCKConfig.FormatIndentator = ' ' ; //当在源码格式下缩进代码使用的字符
FCKConfig.StartupFocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上
FCKConfig.ForcePasteAsPlainText = false ; //是否强制粘贴为纯文件内容
FCKConfig.AutoDetectPasteFromWord = true ; //是否自动探测从word粘贴文件,仅支持IE
FCKConfig.ShowDropDialog = true ;//是否显示下拉菜单
FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 0 ;//按下Tab键时光标跳格数,默认值为零为不跳格
FCKConfig.ShowBorders = true ;//合并边框
FCKConfig.SourcePopup = false ;//弹出
FCKConfig.ToolbarStartExpanded = true ;//启动fckeditor工具栏默认是否展开
FCKConfig.ToolbarCanCollapse = true ;//是否允许折叠或展开工具栏
FCKConfig.IgnoreEmptyParagraphValue = true ;//是否忽略空的段落值
FCKConfig.FloatingPanelsZIndex = 10000 ;//浮动面板索引
FCKConfig.HtmlEncodeOutput = false ;//是否将HTML编码输出
FCKConfig.TemplateReplaceAll = true ;//是否替换所有模板
FCKConfig.ToolbarLocation = 'In' ;//工具栏位置,
FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
FCKConfig.BaseHref = ''; // 相对链接的基地址
FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤
FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言
FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言
FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右
FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代
FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码
FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码
FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符
FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记
FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器
FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本
FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 0/1; // TAB是否有效
FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数
FCKConfig.ShowBorders = true/false; // 是否合并边框
FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现
FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏
FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏
FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br
FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br
FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容
FCKConfig.FontColors = ""; // 文字颜色列表
FCKConfig.FontNames = ""; // 字体列表
FCKConfig.FontSizes = ""; // 字号列表
FCKConfig.FontFormats = ""; // 文字格式列表
FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置
FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置
FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器
FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径
FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置
FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数
FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整
FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
上传设置
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php
//第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的,JSP项目这里就不要改了
FCKConfig.LinkUploadAllowedExtensions = "" ; // empty for all
FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"
//这是两个允许和拒绝上传的文件类型列表
FCKConfig.ImageBrowser = false ;//是否在插入图片功能里面启用服务器文件浏览功能
FCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=Image&Connector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;
//Type=Image 表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面
FCKConfig.FlashBrowser = false ;//是否在插入flash功能中启用服务器文件浏览功能
FCKConfig.LinkUpload = false ;//是否启用插入链接的快速上传功能
FCKConfig.ImageUpload = false ;//是否启用图片快速上传功能
FCKConfig.FlashUpload = false ;//是否启用flash上传功能
(5) 调用FCKeditor
用Javascript脚本语言调用必须引用脚本文件 <script type="text/javascript" src="<%=request.getContextPath()%>/FCKeditor/fckeditor.js"></script>
然后找到要显示编辑器的标签处进行修改,比如原先的一个struts的文本域为
<html:textarea property="content"></html:textarea>
那么现在就要在它后面加上以下这段javascript脚本。
<script type="text/javascript">
var oFCKeditor = new FCKeditor('content') ; //content与textarea的property或name属性对应
oFCKeditor.BasePath = "<%=request.getContextPath()%>/FCKeditor/" ;
//写明FCKeditor文件夹在项目中的路径
oFCKeditor.Width=450
oFCKeditor.Height = 500;
oFCKeditor.ToolbarSet = "Default" ;//用默认工具栏
oFCKeditor.ReplaceTextarea();
</script>
上面两处都用到了<%=request.getContextPath()%>,这是项目所在的根路径,在项目开发过程中一般为“项目名”,而挂到正式服务器上时一般为空(“”)。
(6)增加视频上传的功能及其工具栏按钮
媒体插件下载地址:
http://www.webmb.com.cn/upload/media_plugin_for_FCKeditor_23_build_1054.rar
安装步骤一: 将 madmedia整个文件夹 拷贝至 editor/plugins/下,找到FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; 这句,查看插件路径是否正确。
安装步骤二:
修改fckconfig.js,在文件末尾增加如下一行代码,FCKConfig.Plugins.Add( 'madmedia', 'en,zh-cn' ) ;
安装步骤三:修改fckconfig.js,找到toolbar按钮设置的部分,将媒体按钮加入toolbar,例如,
原来是,
FCKConfig.ToolbarSets["Default"] = [
['Image','Flash']
]
改为,
FCKConfig.ToolbarSets["Default"] = [
['Image','Flash','MadMedia']
]
FCKConfig.ContextMenu= ['Generic','Link','Anchor','Image','Flash','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form']
中也可加入
FCKConfig.ContextMenu= ['Generic','Link','Anchor','Image','Flash','MadMedia','Select','Textarea','Checkbox','Radio','TextField','HiddenField','ImageButton','Button','BulletedList','NumberedList','Table','Form']
安装步骤四:修改插件中的/FCKeditor/editor/plugins/madmedia/media.js文件,把其中所有的包含”Flash”的字符串用”Link”替换,因为此插件的上传的media文件的存放路径与以Link方式上传文件的目录相同,并不是Flash文件的上传路径。
安装步骤五:为了解决上传中文文件文件名变为乱码的问题需要修改FCKeditor的源代码,在源码的com.fredck.FCKeditor.uploader.SimleUploaderServlet类文件中搜索语句DiskFileUpload upload = new DiskFileUpload();再其后添加一句upload.setHeaderEncoding("UTF-8");编辑完成后把整个源代码的com包重新打成一个.jar包代替原来的.jar包。
(7)解决FCKeditor 与 struts2 上传时出错
原因是struts2的filter拦截了上传文件的动作,
//org.apache.struts2.dispatcher.Dispatcher.java
public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException {
// don't wrap more than once
if (request instanceof StrutsRequestWrapper) {
return request;
}
String content_type = request.getContentType();
if (content_type != null && content_type.indexOf("multipart/form-data") != -1) {
MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);
request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext));
} else {
request = new StrutsRequestWrapper(request);
}
return request;
}
在这里又找不到MultiPartRequest.class的实现类。于是出错了。
只要不让struts2拦截处理上传事件, url-pattern改为*.action就可以解决
但是因为struts2的tag需要经过过滤器,所以如果你jsp页面上面用到了struts2的tag,那么就要增加一个*.jsp的url-pattern,修改web.xml文件如下:
1. <filter>
2. <filter-name>struts2</filter-name>
3. <filter-class>
4. org.apache.struts2.dispatcher.FilterDispatcher
5. </filter-class>
6. </filter>
7.
8. <filter-mapping>
9. <filter-name>struts2</filter-name>
10. <url-pattern>*.action</url-pattern>
11. </filter-mapping>
12.
13.
14. <filter-mapping>
15. <filter-name>struts2</filter-name>
16. <url-pattern>*.jsp</url-pattern>
17. </filter-mapping>
而上传页面调用时直接用文件名调用(如upload.jsp)。struts2只处理 *.action 的请求。
试了一下。和预想的一样,一切OK。
(8)上传时弹出“Security error. You probably don't have enough permissions to upload. Please check your server.”错误对话框的解决方法。
比如存放上传文件的文件夹是根目录下的upload,不同类型的文件会存到它的不同子文件夹下,比如图片放在子文件夹Image,Flash放在子文件夹Flash,其它文件夹放在子文件夹File(正如在第4点中提到的配置文件fckconfig.js中URLFCKConfig.FlashUploadURL=FCKConfig.BasePath+'filemanager/upload/simpleuploader?Type=Flash' ;Type的参数值就是上传到的子文件夹的名称),而这些子文件夹是上传第一个文件时程序自建的,而一般的服务器都不让Internet访问用户有新建文件夹的权限,所以需要把这三个子文件夹事先建好。
- media_plugin_for_FCKeditor_23_build_1054.rar (4.9 KB)
- 下载次数: 53
- FCKeditor-2.3.zip (132.5 KB)
- 下载次数: 62
- FCKeditor_2.6b.zip (1.2 MB)
- 下载次数: 101
评论
2 楼
左博涯
2009-03-12
mickey_mjy 写道
拿走了~ 但是图片和flash还有视频上传都有错 !
安装步骤四:修改插件中的/FCKeditor/editor/plugins/madmedia/media.js文件,把其中所有的包含”Flash”的字符串用”Link”替换,因为此插件的上传的media文件的存放路径与以Link方式上传文件的目录相同,并不是Flash文件的上传路径。
注意这步要按我说的改才行!
1 楼
mickey_mjy
2009-03-07
拿走了~
但是图片和flash还有视频上传都有错 !
但是图片和flash还有视频上传都有错 !
相关推荐
在SSH项目中整合FCKeditor文本编辑器技术
FCKeditor文本编辑器插件的使用,包含FCKeditor使用方法详解.doc文档、FCKeditor使用步骤.txt的总结、struts2整合FCK时报302错误.txt的总结文档,对你非常有帮助。
其中包含了相关程序及程序的详细使用说明,和修改说明
javaWEB使用附文本编辑器(fckeditor)的完整实例,详细代码和说明
FCKEditor 是一款开源的非常优秀的WEB在线编辑器,它的JS类库几乎匹敌于当前流行的JQuery,目前最新版本为2.65 .本文基于.Net的应用针对FCKEditor的源代码进行分析,同时改造了部分过于复杂的功能,将其简单化。供...
4、解决商品编辑中编辑器被重置,uedite无法保存内容的bug。 admin/templates/goods_info.htm 找到 document.forms['theForm'].reset(); 修改为: //document.forms['theForm'].reset(); 下载: ...
Fckeditor太大,加载很慢。于是xheditor便开始出现在人们的视野里。可能你还不知道xheditor是什么,其实你...目前,创络科技正致力于整合优化后的xheditor到我们的后台系统,使客户可以更加容易、快速的编辑网站内容。
Fckeditor文本编辑器 整合到JSP中文档 很好狠强大~~~
正如MS Office在个人PC上是最普及的文本编辑器一样,FCKeditor是使用最广泛的网页编辑器,所见即所得,简单易用,功能很不错。 首先需要说明的是,与通常意义上的编辑器不同,FCKeditor并不是一个需要安装的程序,...
大伙反应帝国cms自带文本编辑器是fckeditor,用起来效果不太理想,百度UEditor的推出,可以帮助不少网站开者在开发富文本编辑器所遇到的难题,接下来为大家介绍下帝国CMS6.6整合UEditor,感兴趣的你可以参考下哈
Rich Editor是我们在Web应用经常使用的一种客户端控件,目前网上开源的、收费的也比较多,在对网上各种富文本编辑器进行了一系列比较之后,我最终选择了FCKEditor
这是jsp的ckfeditor整合ckfinder2项目,有需要的可以下载来看下
书中还深入讲解了客户端验证框架jsvalidation、在线文本编辑器fckeditor和apache commons的一些类库等功能强大的实用开发工具。另外,书中提供了大量的实例代码,读者可以自由取用,这些代码功能强大,适合解决java ...
书中还深入讲解了客户端验证框架jsvalidation、在线文本编辑器fckeditor和apache commons的一些类库等功能强大的实用开发工具。另外,书中提供了大量的实例代码,读者可以自由取用,这些代码功能强大,适合解决java ...
2.20 分类描述使用FCKeditor作为编辑器 56 2.21 如何去掉ECSHOP帮助中心文章页的评论功能 57 2.22 ecshop 自定义分类模板的方法 59 2.23 多语言 62 2.24 实现自动选择语言转跳转 65 2.25 ecshop模板中如何调程序 66 ...
6.4.2 FCKEditor在线编辑器 76 6.5 小结 79 第7章 在线支付模块 80 7.1 在线支付介绍 80 7.1.1 在线支付的安全保障 80 7.1.2 在线支付的优点 80 7.2 在线支付的流程 81 7.3 使用支付宝实现在线支付 ...
--fckeditor:开源html文本编辑器 --modules\convert:shopex转换文件 --modules\cron:如自动上下架、ip删除等函数 --modules\integrates:整合各种插件和函数基础类 --modules\payment:各种支付接口插件 --...