艾伟:FCKeditor 配置、扩展

一、自定义 FCKeditor 的 BasePath

BasePath 即FCKeditor在网站中的相对路径,默认值是 /fckeditor/,最好在Web.config appSettings中对其进行配置:

<add key="FCKeditor:BasePath" value="/FCKeditor_2.6.3/"/>

这样做有诸多优点:

  1. 开发环境与生产环境不同,开发环境一般是http://localhost/xxx.com/这种情况下FCKeditor就得放在一个虚拟目录http://localhost/fckeditor/中,若涉及多个网站的开发,而各网站的FCKeditor有差别时,这样显然不是最优;
    而且因为物理目录结构与逻辑目录结构不同,也会有发生错误的隐患;
    而如果采用Web.config的配置,就可以在开发环境采用不同的配置,FCKeditor的物理路径与生产环境保持一致;
  2. 当升级FCKeditor时,只需要将新版本的FCKeditor放在相应版本号的目录里,修改一下配置即可。这样可以解决因为静态资源的客户端缓存问题,不同用户出现不同的错误的问题;
  3. 可以直观地看到自己的FCKeditor的版本号。

二、配置文件上传的目录

FCKeditor的文件上传(如图片上传)目录可以通过Web.config appSettings进行配置,如:

<add key="FCKeditor:UserFilesPath" value="/UploadFile/FCKeditor/"/>

也可以在 /FCKeditorBasePath/editor/filemanager/connectors/aspx/config.ascx 中进行配置,但我建议 FCKeditor 目录中的内容能不改就不改(fckconfig.js除外),这样日后升级可以放心地替换即可。

三、自定义文件上传的子目录的格式

我们知道,一个文件夹下面不能存放过多的文件(据称Windows下面的目录下2000为阈值),否则对该目录的访问会严重影响I/O性能。而FCKeditor的文件存储是在单一的一个目录进行的。我对FCKeditor进行了扩展,可以在Web.config appSettings对存储目录的格式自定义,如:

<add key="FCKeditor:FolderPattern" value="%y/%m-%d/"/>

以今天的日期为例:这样产生的文件上传子目录格式为:2008/10-21/。
年月日格式的目录可以随意组合,如:

<add key="FCKeditor:FolderPattern" value="%y/%m/%d/"/>

这样产生的文件上传子目录变成了2008/10/21/

参考:

  • %y    代表 当前时间的年份
  • %m    代表 当前时间的月份
  • %d    代表 当前时间的日

四、自定义文件上传的文件名格式

FCKeditor对文件名的处理规则是:如果当前目录下没有重名文件,则上传后的文件名与用户PC上的文件名一致;若存在n个重名文件,则加入用户PC上的文件名是Example.xxx,上传后的文件名变为:Example(n).xxx

我的项目里要求对用户上传的文件名变成Guid的格式,所以我对FCKeditor也做了扩展,在Web.config appSettings可以对上传后文件的格式自定义,如:

 

<add key="FCKeditor:FilenamePattern" value="%guid.%extl"/>

这样的文件名如:a299e63a-7d2d-493d-bbb9-99162ef5b6b8.gif

参考:

  • %guid    代表 一个新的guid字符串
  • %fnl    代表 源文件名的小写
  • %fnu    代表 源文件名的大写
  • %extl    代表 源文件扩展名的小写
  • %extu    代表 源文件扩展名的大写

五、对上传图片进行缩放处理

用到FCKeditor图片上传功能的场景中,很多是内容的发表。内容中往往不需要几千像素大小的图片,比如我的项目中,文章区域最宽也就560像素,所以我做了一个扩展,在Web.config appSettings中可以对图片的最大宽度进行自定义:

<add key="FCKeditor:MaxWidthOfUploadedImg" value="560"/>

有了这段配置,上传后的图片的宽度都控制在了560像素及以内

六、自定义上传后图片URL中的域名

为了加快页面的渲染,我们可以把图片等静态资源放在一个独立的域名当中。但FCKeditor默认的图片上传后URL是相对路径, 如:/fck/2008-03-01/1.jpg:

我增加了这个扩展,在Web.config appSettings可以配置上传后图片URL的域名,如:

<add key="FCKeditor:UploadedFilesDomain" value="http://www.aa.com/"/>

图片地址就变成绝对地址了,形式如: :http:www.aa.com/fck/2008-03-01/1.jpg

七、解决上传文件名含有中文的文件时提示 "invalid file type" 的问题

这个问题只需要在Web.config中增加一段配置即可解决:

<location path="FCKeditor_2.6.3/editor/filemanager/connectors/aspx/upload.aspx">
    <system.web>
        <globalization requestEncoding="utf-8" responseEncoding="gb2312"/>
    system.web>
location>

注意:

  1. responseEncoding是网站的默认编码
  2. FCKeditor_2.6.3是FCKeditor的BasePath

八、FCKeditor的安全性

在FCKeditor的2.3.2版本里,曾有一个漏洞,可以通过 /editor/filemanager/browser/default/connectors/aspx/connector.aspx 往服务器上传任意文件,我的网站就曾经中招。

2.6.3虽然暂未发现类似的问题,但一般情况下用不到的文件最好还是删除比较好:

  1. FCKeditor BasePath 根目录中除了保留:

    1. /editor
    2. /fckconfig.js
    3. /fckpackager.xml
    4. /fckstyles.xml
    5. /fcktemplates.xml
    6. /license.txt

    外,全部删除

  2. /editor/filemanager/中除了保留:
    1. /connectors/aspx/config.ascx
    2. /connectors/aspx/upload.aspx

    外,全部删除

  3. 删除 /editor/_source/
  4. /editor/filemanager/connectors/aspx/config.ascx 的 CheckAuthentication() 方法中,增加验证用户是否登录的逻辑

注意:以上措施仅适用于ASP.NET的网站,其他语言版本的网站未考虑。

时间: 2024-07-31 06:21:42

艾伟:FCKeditor 配置、扩展的相关文章

fckeditor配置与增加中字体方法

fckeditor配置与增加中字体方法 假设网站的目录为: 以下为引用的内容: website_root index.php教程 fckeditor  一.调用fckeditor 的两种方法 1.通过创建实例来调用 在 index.php 文件中,调用它的代码,把下面的代码加在需要编辑器的地方: 以下为引用的内容: <form name="frm1"> <?php //引用fckeditor.php这个文件,基本的类和数据结构都在这里 include_once(&qu

FCKeditor 配置、扩展

一.自定义 FCKeditor 的 BasePath BasePath 即FCKeditor在网站中的相对路径,默认值是 /fckeditor/,最好在Web.config appSettings中对其进行配置: <add key="FCKeditor:BasePath" value="/FCKeditor_2.6.3/"/> 这样做有诸多优点: 开发环境与生产环境不同,开发环境一般是http://localhost/xxx.com/这种情况下FCKed

java中FCKeditor配置安装与常用问题解决

FCKeditor资料下载及介绍   官方网站:http://www.fckeditor.net    1.下载FCKeditor *.*.*    2.下载fckeditor-java-*.*.*-bin.zip    3.下载fckeditor-java-demo-*.*.*.war (可作为参考)     demo的查看.doc文档的查看       下载的说明,涉及java还得下个包    war工程的查看   安装与通过JavaScript调用FCKeditor的两种方法    部署:

fckeditor配置方法

如何安装? 1.下载最新版的FCKEDITOR 2.解压缩到你的站点根文件夹中名为FCKEDITOR的文件夹中(名称必须为FCKEDITOR,因为配置文件中已经使用此名称来标示出FCKEDITOR的位置) 3.现在,编辑器就可以使用了,如果想要查看演示,可以按下面方法访问: http:///FCKeditor/_samples/default.html 注意:你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称

FckEditor 配置手册中文教程详细说明_网页编辑器

比如CUTEEDITOR,虽 然功能比FCKEDITOR还要强大,可是,它本身也够庞大了,至于FREETEXTBOX等,其易用性与FCKEDITOR相比,尚有差距,可以 说,FCKEDITOR是一个别具匠心的在线编辑器,它里面融入了作者高深的面向对象的JAVASCRIPT功力,集易用性与强大的功能与一体. .与编辑器相关的所有图像,脚本以及调用页 .语言文件 .编辑器的皮肤文件 .工具样的贴图等 这些将导致在服务器和客户端间产生相当的流量.如果有许多文件被调用,那么即便每个文件很小.也会让用户等

Asp.net MVC Fckeditor的扩展(支持PV3及自动绑定)

namespace System.Web.Mvc {     using System;     using System.Globalization;     /// <summary>     /// Fckeditor的HTMLHelper     /// http://chsword.cnblogs.com/     /// </summary>    static public class FckTextBoxExt     {         /// <summa

FCKeditor配置教程

首先删除不必要的文件节省空间.凡是以_开头的文件如_samples,_testcases和一些用不到的.asp..jsp..cfm文件统统干掉. 2修改fckconfig.js FCKConfig.AutoDetectLanguage = true ;//是否自动检测语言 FCKConfig.DefaultLanguage  = 'zh-cn' ;//设置语言 FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;//设置皮肤 F

思科交换机图文设置扩展ACL的配置与应用技巧

  无论是在思科路由器还是思科交换机等网络设备上,标准ACL访问控制列表始终无法同时匹配通信源地址与目标地址的特性,也不无法满足现今网络世界"粒度化"控制的要求,比如:允许访问某一服务器的某项服务功能,但是不允许Ping通该服务器.那么,就需要使用扩展的ACL来替代标准的ACL的应用,在实际的应用控制中,扩展的ACL较标准ACL而言,似乎更受管理员的喜爱. 演示目标:配置扩展ACL为网络应用提供更"粒度化"的控制. 演示环境:使用演示标准ACL的配置部分的如下图AC

配置防火墙的CBAC

我在Cisco 2514系列访问路由器上安装了版本为12.2的IOS防火墙.在那个时候,这个路由器还在使用扩展ACL来过滤从互联网接口中进入的流量.在断开外部接口的电缆后,我整理并删除了现存的ACL,然后实现如下的IOS防火墙性能. 在配置ACLs和CBAC的一个共同点就是需要在外部接口的入口安装一个互联网路由器,这样可以避免私人网络受到互联网中有害流量的攻击.这个配置对那些只允许由内部发起连接的返回流量通过的防火墙是相当简单的.为了实现这以目的,我在进入的接口增加了一个扩展访问列表,这样可以阻