在云那方

首页 新随笔 联系 订阅 管理

下载:FCKeditor_2.6.3.rar

 http://www.cnblogs.com/zhubo/archive/2008/10/21/using_fckeditor_net.html

一、集成方法
    FCKeditor
应用在ASP.NET上,需要两组文件,一组是FCKeditor本身,另一个是用于ASP.NETFCKeditor控件(分为1.12.0两个版本,这里使用2.0版本)。

    1. 
FCKeditor加入到项目中
    
解压FCKeditor编辑器,得到文件夹fckeditor,复制此文件夹到Web应用的项目下(也可以是子孙目录下)。
    
解压FCKeditor控件,在其子目录bin/Release/2.0下有一个程序集。在Web应用的项目中引用该程序集。

    2. 
在页面中使用FCKeditor
    
有两种方式。

    
1)手工编码
    
在页面中加入ASP.NET指令:
        <%@ Register Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
    
然后在需要的地方加入FCKeditor控件:

        <FCKeditorV2:FCKeditor id="FCKeditor1" runat="server" />
    
2)集成到Visual Studio工具箱
    
打开一ASP.NET页面,展开Toolbox,打开右键菜单,选择“Choose Items ...”,在出现的“Choose Toolbox Items”会话框的“.NET Framework Components”选项卡中选择“Browse”,找到并选中FCKeditor程序集,打开后回到“Choose Toolbox Items”窗口,点击“OK”,完成控件导入。
    
这时,在ToolboxGeneral分类下出现了一个名为FCKeditor的控件,可以像使用Visual Studio内置控件一样使用它。

    3. 
配置FCKeditor编辑器路径
    
在页面中,使用的是FCKeditor控件,该控件需要知道FCKeditor编辑器文件组的路径。有两种配置方法。
    
1)配置web.config
    
appSettings配置节中加入

        <add key="FCKeditor:BasePath" value="~/PathOfFCKeditor/" />
    
使用这种配置方法后,对于项目中任何一个页面中用到的FCKeditor控件,都不用再配置其BasePath属性。
    
2)直接对用到的FCKeditor控件进行配置
    
在页面代码中设置FCKeditor的属性BasePathFCKeditor编辑器文件组的路径,或者在Page_Init事件处理器中设置其BasePath的值。

    4. 
配置FCKeditor编辑器文件上传路径
    
web.configappSettings配置节中加入
        <add key="FCKeditor:UserFilesPath" value="~/YourUploadFilePath" />
   
    
这样,就完成了FCKeditorASP.NET页面的集成工作。


二、配置FCKeditor
    
按照FCKeditor的默认配置,可以完成一些常用的HTML可视化编辑工作,但在实际应用中,还需要对其做进一步的配置。FCKeditor控件的可配置属性不多,且配置后只能作用于一个单一实例。实际上,需要对FCKeditor编辑器文件组中的通用配置文件/fckconfig.jsASP.NET专用文件上传管理代码文件/editor/filemanager/connectors/aspx/config.ascx进行配置。

   
    1. 
配置控件语言
    FCKeditor
是自动探测浏览器所使用的语言编码的,其默认语言是英文。修改配置行"FCKConfig.DefaultLanguage    = 'en';"'zh-cn',采用中文为默认语言。

    2. 
配置控件应用技术
    FCKeditor
默认是用于php技术的。修改配置行"var _FileBrowserLanguage   = 'php';""var _QuickUploadLanguage    = 'php';"'aspx',采用ASP.NET技术。

    3. 
配置Tab
    
默认Tab键在FCKeditor中不可用,可以修改配置行"FCKConfig.TabSpaces    = 0;"1,启用Tab键。

    4. 
定制FCKeditor工具栏
    FCKConfig
提供两种工具栏配置。在配置行"FCKConfig.ToolbarSets["Default"] = [ ... ];"中定义了使用全部可用按钮的配置(作为工具栏的默认配置)。在配置行"FCKConfig.ToolbarSets["Basic"] = [ ... ];"中定义了一个精简按钮的工具栏配置。实际使用时,默认配置按钮太多,精简配置按钮又太少。因此需要定制工具栏。
    
配置值[ ... ]中是形式为[[v, v2, .., vN], '/', [ ... ],...]vN表示要显示的按钮名字,'/'表示之后的按钮组在下一行显示)的按钮分组的集合。如果不需要整个分组的按钮,那么就删掉该分组(形式为 [ , , ...]);如果只是不需要分组中的某个按钮,删掉该按钮。

    5. 
定制可用的文本字体
    FCKeditor
是外国人做的,默认使用的字体当然也是西文字体了。修改配置行"FCKConfig.FontNames = '...';",加入要使用的中文字体名,如宋体,楷体_GB2312等。
    FCKConfig
默认使用HTML字体关键字来表示可选的字体大小,这存在着不同浏览器显示效果不一致的问题。因此,建议修改配置行"FCKConfig.FontSizes = '...';",去掉字体关键字值,加入像素值或磅值。(当然,在网页里定义了全局样式表的话,就不需要修改这项设置了,但应该教会最终用户如何设置字体达到最佳显示效果。)

    6. 
启用文件上传
    FCKeditor
提供了非常强大和易用的文件上传功能,但是默认配置里,文件上传功能不可用,这是基于安全的考虑。但我认为访问安全性控制应该由程序来做,不应由控件来做。
    
在文件config.ascx中,修改CheckAuthentication()的返回值为true。如果希望上传具有多扩展名的文件,修改SetConfig()ForceSingleExtension的值为falseFCKeditor默认可以上传文件、图片、Flash和多媒体四种类型的文件,可以在SetConfig()中对AllowedTypes修改来增减允许的类型(这个类型可以在后面的 TypeConfig["TypeName"]中定义,比如在AllowedExtensions属性中定制本类型允许的上传文件扩展名,在 DeniedExtensions里定制不允许的上传文件扩展名)。
    
在文件fckconfig.js中,修改

配置行"FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;"

FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=File&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;"

修改配置行"FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;"

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

(在这个配置文件里,看起来似乎Type=File是作为默认参数的,但实际上不加这个参数的话,会出错。)
   
    7. 
其它配置
    
对于这两个配置文件中的配置属性,从名字上很容易知道它们所代表的含义,基本上都可以定制。但要注意,属性值的格式要正确。


三、将FCKeditor编辑器文件组ASP.NET
    FCKeditor
编辑器文件组包含了用于它所支持的各种应用技术的文件,所以,对于ASP.NET应用来说,有很多文件是不需要的。

    
根目录下,只保留文件夹editor,文件fckconfig.jsfckeditor.jsfckpackager.xmlfckstyles.xmlfcktemplates.xml
    
子目录editor/filemanager/connectors下,只保留文件夹aspx

提示无权限解决方法有两种,都可以解决:

第一种:

FCKeditor 2.6.3 上传图片成功 但IE提示无权限的解决方法

.net 2.0 VS2008 FCKeditor最新版本2.6.3 
fck
的基本设置都完成,上传权限全部开放\editor\filemanager\connectors\aspx    
config.ascx 
文件上传和浏览的权限检查   全部返回true 

测试   浏览文件夹正常     在上传里面   点击上传   一直loading   ie左下角出现错误提示:没有权限,无法返回上传成功,无法插入图片。打开文件夹   发现图片已经上传上去了!   FCKeditor就是无法返回。 

但是 用 localhost 来测试   可以正常提示上传成功   返回插入图片 
如果改成   127.0.0.1   就错误!上传到服务器上也是错误! 

解决方法

修改FCKeditor.NET 2.6源码 FileBrowser/FileWorkerBase.cs 
删除 try{document.domain=d;}catch (e){break;} 

------------------------------------------------ 
修改了以后,生成dll 
它的位置在FCKeditor.Net_2.6.3\obj\Debug,将修改后生成的dll考到你的项目的bin的下面,即可

第二种

FCKeditor上传图片提示“没有权限”的解决方法(.net)收藏

今天在调试FCKeditor.net2.6.3上传图片时,碰到一个很怪的问题,就是图片文件上传是成功了的,但就是在fck中不返回上传图片的地址,IE脚本提示“没有权限”,找了很久终于找到了问题。

解决方法:

打开下载的“FCKeditor.Net_2.6.3.zip”中的“FredCK.FCKeditorV2.vs2005.csproj”项目

再认识开FileBrowser -> FileWorkerBase.cs 118

将原始代码:

Response.Write( @"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();" );

替换为:

Response.Write(@"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{}catch (e){break;}}})();");

然后生成项目dll,更新FredCK.FCKeditorV2.dllWeb项目中即可。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liyanwwww/archive/2009/05/14/4183127.aspx

其中有以下几个地方需要注意

一,webconfig里面配置

<add key="FCKeditor:BasePath" value="~/fckeditor/"/>

<add key="FCKeditor:UserFilesPath" value="~/upload/"/>

二,浏览上传和快速上传的路径

打开fckeditor\editor\filemanager\connectors\aspx文件夹中的config.ascx

TypeConfig["File"].FilesPath = "%UserFilesPath%file/";

TypeConfig["File"].QuickUploadPath = "%UserFilesPath%file/";

设置错了,会传到错误的文件夹

三,开启默认上传

打开fckeditor\editor\filemanager\connectors\aspx文件夹中的config.ascx

检查CheckAuthentication()函数返回的值 默认是返回false

可以自行根据安全设置返回true;

四,修改fckconfig.js文件增加Type=File

配置行"FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;"

FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=File&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;"

修改配置行"FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' +_QuickUploadExtension ;"

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

(在这个配置文件里,看起来似乎Type=File是作为默认参数的,但实际上不加这个参数的话,会出错。)

五,图片上传成功后 报错 没有权限

打开2.6.3源文件 打开FileBrowser -> FileWorkerBase.cs 118

将:

Response.Write( @"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();" );

替换为:

Response.Write(@"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{}catch (e){break;}}})();");

或者直接将上面红色部分try{document.domain=d;}catch (e){break;}删掉。重新编译生成dll,然后添加引用。

 

posted on 2010-03-16 16:28  Rich.T  阅读(211)  评论(0编辑  收藏  举报