代码改变世界

转: 不重新编译DLL,让FCKEditor支持附件上传

2010-01-25 16:45  于为源  阅读(423)  评论(0编辑  收藏  举报

最近在忙着做一个小项目,就是一个企业内部的论坛,其中最基本的一点就是富文本编辑帖子和回帖。目前市面上用的比较多的富文本编辑器有:

FreeTextBox 一个有很多年历史的富文本编辑器了,使用简单,而且一般的使用是免费的,但是不开源,上传图片上传附件等功能没有,扩展性差。

 image

CuteEditor 最强大的富文本编辑器,巨牛无比,但是是收费的,个人使用的话用下破解版倒无所谓,要想在企业中使用那就得买了,所以虽然强大,但是想节约的话就不考虑这个了。看看他的菜单就知道他有多牛了:

image

FCKEditor(升级版CKEditor)强大的开源富文本编辑器,各个语言中都可以使用。支持上传图片、Flash等,功能强扩展性强。

image

image

TinyMCE 也是一个开源的富文本编辑器,不过名气没有FCKEditor大,功能还是不错。

image

KindEditor 一个国人开发的富文本编辑器,貌似还不错,没有深入研究。

image

SharePoint的富文本编辑器,功能很弱,做的很烂,在MOSS中直接使用还好,如果不是MOSS环境那就完全没有必要使用了。

……

介 绍了那么多,接下来还是回到主题,说说FCKEditor的配置修改吧。我在项目中使用的是FCKEditor2.6.3,FCKEditor本身非常强 大,但是不知道为什么,默认情况下只支持上传图片和Flash,不支持上传一般的附件。网上有修改FCKEditor源代码,然后重新编译成dll,再放 在服务器上。这种方法太麻烦了,经过简单的调试了下FCKEditor的代码,发现可以通过直接修改配置文件来上传文件。

具体修改方法就是打开fckeditor文件夹下的fckconfig.js文件,找到FCKConfig.LinkUploadURL ,修改如下:

FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=File';

OK,就改这一个地方就够了。现在点击“插入超链接”,切换到“上传”选项卡,选择本地文件,然后点击“发送到服务器上”按钮既可。

image

然后就可以以超链接的方式添加到编辑框中,如图:

image

这 里默认的是WebImages/FCK目录,在论坛中我们希望将用户上传的文件发布到D盘,每个用户上传的文件放在自己的登录名所命名的文件夹下面,那么 可以修改fckeditor\editor\filemanager\connectors\aspx\config.ascx文件,修改代码如下:

string loginName = Page.User.Identity.Name.Substring(Page.User.Identity.Name.IndexOf("\\") + 1);
UserFilesPath = "
/Files/" + loginName;//文件的虚拟目录
UserFilesAbsolutePath = @"
D:\Files\"+loginName;//文件保存到服务器上的绝对路径

这样上传的文件就会保存到D盘Files文件夹下的用户名文件夹中,需要在IIS中设置虚拟目录Files,指向D盘Files文件夹,这样用户才可以在网站中看到该文件夹中的文件。

我们要使用时间来命名文件夹或者使用其他方式来命名文件夹只需要修改这两个属性即可.OK,本项目中FCKEditor的配置修改就讲这么多了!