前言FCKeditor是一个广泛使用的HTML编辑器。本文对配置、功能扩展(如自定义文件上传子目录、自定义文件名、上传图片后处理等)进行了初步描述。)以及FCKeditor和FCKeditor.NET的安全性。希望帮助有相同需求的同事节省一点时间;也希望你能改正缺点。谢谢你。一、自定义FCKeditor的BasePath BasePath,即FCKeditor在网站中的相对路径。默认值为/fckeditor/。最好在Web.config appSettings中配置:addkey=' fckeditor : base path ' value='/fckeditor _ 2 . 6 . 3/'这样做有很多好处:开发环境与生产环境不同。开发环境一般为http://localhost/xxx.com/。在这种情况下,FCKeditor必须放在虚拟目录http://localhost/FCKeditor/。如果涉及多个网站的开发,并且每个网站的fckeditor不同,这显然不是最优的。而且,由于物理目录结构不同于逻辑目录结构,也会存在出错的隐患。如果采用Web.config的配置,开发环境中可以采用不同的配置,FCKeditor的物理路径与生产环境一致;升级FCKeditor时,只需要将新版本的FCKeditor放入对应版本号的目录中,修改配置即可。这样可以解决不同用户因为静态资源的客户端缓存问题而产生不同错误的问题。您可以直观地看到您的FCKeditor的版本号。二、配置文件上传目录fckeditor文件上传(如图像上传)目录可以通过Web.config appSettings进行配置,例如addkey=' FCKeditor : userfilepath ' value='/upload file/FCKeditor/'/也可以在/fckeditorphath/editor/filemanager/connectors/aspx/config . ascx中进行配置,但是我建议FCKeditor目录中的内容不要更改(fckconfig.js除外),以便以后升级3.自定义文件上传的子目录格式。我们知道,一个文件夹下不能存储太多文件(据说Windows下目录中2000是阈值),否则访问这个目录会严重影响I/O性能。FCKeditor的文件存储是在一个目录下进行的。我扩展了FCKeditor,可以在Web.config appSettings中自定义存储目录的格式,比如:addkey=' FCKeditor : folder pattern ' value=' % y/% m-% d/'/====================。
年、月、日格式的目录可以任意组合。例如,addkey=' fckeditor : folder pattern ' value=' % y/% m/% d/'/这样生成的文件上传子目录变成了2008/10/21/========================。使用不同的上传子目录Web.config修改上传子目录的配置。增加%u意味着不同用户根据其身份使用不同的上传子目录。addkey=' fckeditor : folder pattern ' value=' % u/% y/% m/% d/'/fckeditor _ 2 . 6 . 3 editor file manager connectors aspx 用于获取当前登录用户id的逻辑复制代码添加到config.ascx中如下:公共覆盖void set config () {# region BOC huh的修改//记录用户的标识符//为默认用户上传文件夹LoginedUserIdentifier=' 44//在这里,用代码# endregion//替换它.这个文件中的原始代码。}这样不同的用户可以根据自己的登录标识(通常是用户id)使用不同的目录进行存储。例如:7394/2008/10/21/(7394是当前登录用户的ID)引用:%u代表当前登录用户的ID % y代表当前时间的年份%m代表当前时间的月份%d代表当前时间的第四天。自定义文件上传的文件名格式FCKeditor对文件名的处理规则是:如果当前目录中没有同名文件,则上传的文件名与用户PC上的文件名相同。如果有n个同名文件,添加用户PC上的文件名为Example.xxx,上传后的文件名变为:example (n) .xxx,我的项目要求用户上传的文件名为Guid格式,所以我也扩展了FCKeditor,上传文件的格式可以在Web.config appSettings定制。例如:addkey=' fckeditor : filename pattern ' value=' % guid。% extl'/文件名如下:a 299 e63a-7d2d-493d-BBB 9-99162 ef 5b 6 b 8 . gif引用:%guid代表新的guid字符串%fnl代表源文件名的小写字母%fnu代表源文件名的大写字母% extl代表源文件扩展名的小写字母% text代表源文件扩展名5的大写字母。在使用FCKeditor图像上传功能对上传图片进行缩放的场景中。内容中通常不需要数千像素大小的图像。比如在我的项目中,最宽的文章区域是560像素,所以做了扩展。图片的最大宽度可以在web . config appSettings:add key=' fckeditor : max width of ploadedimg ' value=' 560 '/中自定义使用此配置,上传图片的宽度控制在560像素以内。6.自定义上传图片URL中的域名。为了加快页面渲染速度,我们可以将图片等静态资源放在一个独立的域名中。但是上传图片后FCKeditor的默认URL是相对路径,如图:。
我添加了这个扩展,上传图片URL的域名可以在Web.config appSettings中配置,比如:addkey=' fckeditor : uploddefiledomain ' value=' http://a.cvimg.cn/'/as如图所示:。
七.解决上传中文文件名文件时提示“文件类型无效”的问题。这个问题只有在Web.config中增加一段配置才能解决:复制的代码如下: Location Path=' fckeditor _ 2 . 6 . 3/editor/file manager/connectors/aspx/upload . aspx ' system . web globalization request encoding=' utf-8 ' responseEncoding=' GB 2312 '/system . web/Location注意:response encoding是网站的默认代码。FCKeditor_2.6.3是FCKeditor的基本路径。八.FCKeditor的安全性在2.3.2版本的FCKeditor中存在漏洞。您可以通过/editor/file manager/browser/default/connectors/aspx/connector . aspx将任何文件上传到服务器,我的网站已经被招募。2.6.3虽然目前还没有发现类似的问题,但是一般来说,删除不用的文件比较好:除了://editor/fckconfig . js/fck package . XML/fck styles . XML/fcktemplates . XML/license . txt之外,保留在FCKeditor BasePath的根目录下。除了在/editor/filemanager/中保留:/connectors/aspx/config . ascx/connectors/aspx/upload . aspx之外,删除所有删除/editor/_ source//editor/file manager/connectors/aspx/config . ascx的CheckAuthentication()方法,并添加逻辑来验证用户是否登录。注:以上措施仅适用于ASP.NET网站,不考虑其他语种网站。附件:源代码来源: http://xiaozai.jb51.net/201108/yuanma/FCKeditor.Net_2.6.3 _ 20090713 . zip bin(. net 2.0)基于fckeditor.net _ 2 . 6 . 3修改。33603358 xiaozai.jb51.net/201108/yuanma/fredck.fckeditorv2 20090713 . zip修改了下列文件的指定行。所有修改过的地方都包含在名为“朱波的修改”的代码块中。也可以通过在整个项目中搜索“朱波的修改”来快速查看更改的地方,方便自己扩展(比如可以设置图片的最大高度)。2008年11月11日,增加了一个可选的新子目录,供不同用户根据用户身份上传自己的图片。参见“三”的更新部分。自定义文件上传子目录的格式”上面。新的源代码和dll文件也已经更新。更新于2009-07-06。由于新手的发现,修复了以下Bug:当FCKeditor:FolderPattern未配置或当FCKeditor:FolderPattern为空时,在成功上传图像后,路径中有一个额外的“/”更新。2009年7月13日,图像后缀命名。gif未被压缩以防止动画效果丢失。