参考了下面这篇文章(只是修改了前台的设置):
http://www.blogjava.net/matthew2006/archive/2008/07/16/215277.html
不过还要设置后台的上传格式 fckeditor.properties
1. 分别打开editor/js文件夹下的fckeditorcode_ie.js、fckeditorcode_gecko.js文件。将代码:
||/\.swf($|#|\?)/i.test(A.src)
替换为:
||/\.swf($|#|\?)/i.test(A.src)||/\.mpg($|#|\?)/i.test(A.src)||/\.asf($|#|\?)/i.test(A.src)||/\.wma($|#|\?)/i.test(A.src)||/\.wmv($|#|\?)/i.test(A.src)||/\.avi($|#|\?)/i.test(A.src)||/\.mov($|#|\?)/i.test(A.src)||/\.mp3($|#|\?)/i.test(A.src)||/\.rmvb($|#|\?)/i.test(A.src)||/\.rm($|#|\?)/i.test(A.src)||/\.mid($|#|\?)/i.test(A.src)
这段代码用来判断文件后缀名,当然文件格式可以自定义,不过要考虑和其他地方相吻合。
2. 打开/editor/dialog/fck_flash/fck_flash.js文件。
(1)增加以下程序代码,用来判断文件后缀名:
function WinPlayer(url){ var r, re; re = /.(avi|wmv|asf|wma|mid|mp3|mpg)$/i; r = url.match(re); return r; } function RealPlayer(url){ var r, re; re = /.(.rm|.ra|.rmvb|ram)$/i; r = url.match(re); return r; } function QuickTime(url){ var r, re; re = /.(mov|qt)$/i; r = url.match(re); return r; } function FlashPlayer(url){ var r, re; re = /.swf$/i; r = url.match(re); return r; }
(2)替换两个地方的代码:一个在UpdatePreview()中,将:
SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;
替换为:
if(WinPlayer(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type', 'application/x-mplayer2' ) ; } if(RealPlayer(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type', 'audio/x-pn-realaudio-plugin' ) ; } if(QuickTime(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type', 'application/video/quicktime' ) ; } if(FlashPlayer(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ; SetAttribute( e, 'pluginspage', 'http://www.macromedia.com/go/getflashplayer' ) ; }
另一个地方在UpdateEmbed()中,将:
SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ; SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ;
替换为:
if(WinPlayer(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type' , 'application/x-mplayer2' ) ; SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ; } if(RealPlayer(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type' , 'audio/x-pn-realaudio-plugin' ) ; SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ; } if(QuickTime(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type' , 'video/quicktime' ) ; SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ; } if(FlashPlayer(GetE('txtUrl').value)!=null){ SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ; SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ; }
3.打开/fckconfig.js文件,将:
FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv)$" ; // empty for all
替换为:
FCKConfig.FlashUploadAllowedExtensions = ".(swf|flv|fla|mpg|asf|wma|wmv|avi|mov|mp3|rmvb|mid)$" ; // empty for all
到此,基本功能已经完成。剩下的是一些细节的设置。
4. 其他设置
(1) 编辑框中文字的设置:打开/editor/lang/zh-cn.js 文件,将flash替换成想要显示的文字。
(2) 默认的音频视频播放效果是循环、自动播放、带操作menu的样式,可以通过设置来显示成想要的效果。方法还是在/editor/dialog/fck_flash/fck_flash.js文件,在UpdateEmbed()方法中,将对应的文件格式中的:
SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' );
替换为:
SetAttribute( e, 'autostart', GetE('chkAutoPlay').checked ? 'false' : 'true' ) ;
到此为止前台上传类型设置结束。
后台也要进行类型设置
fckeditor.properties 文件中添加:
connector.resourceType.flash.extensions.allowed = swf|flv|fla|mpg|asf|wma|wmv|avi|mov|mp3|rmvb|mid
欧了~!~点击上传flash按钮就可以上传你制定的文件类型了。记得要reload一下你的项目或是重启tomcat喔~!~
PS:上篇解决上传中文后,并且fckeditor 2.4.1 for java 中自身在上传文件时可以建立中文名的文件夹。但是在上传音频和视频后,该视频和音频不能播放,要是吧路径和上传的文件名改成英文字母后才能正常播放。(要是中文的暂时还没解决)
————————————————————————The End—————————————————————————