【转】Asp.net中配置FCKEditor2.6.3
一、下载配置
从官方下载FCKEditor,如需在.NET环境中使用,则需要下载FCKeditor_2.6.3.zip和FCKeditor.Net_2.6.3.zip。
下载完成后,解压FCKeditor_2.6.3.zip,其中有很多文件中.net环境中是使用不到的,可以删除掉:
1、_samples文件夹和带下划线的文件。如果想看示例,则可以保留_samples文件夹。
2、fckeditor目录下保留editor文件夹,fckconfig.js,fckeditor.js,fckstyles.xml,fcktemplates.xml,其中fckconfig.js是配置文件,fckeditor.js是一个API文件,fckstyles.xml里面有一些文字格式和工具栏按钮的设置,fcktemplates.xml是编辑器的模板文件,可以自定义模板。
3、editor/lang目录中保留en.js,zh.js,zh-cn.js文件。
解压FCKeditor.Net_2.6.3.zip,选择bin/Release中对应版本的dll,复制到网站项目的bin目录。
修改fckconfig.js: FCKConfig.DefaultLanguage = 'zh-cn';
var _FileBrowserLanguage= 'aspx';
var _QuickUploadLanguage= 'aspx';
在web.config中增加:
<appSettings>
<add key="FCKeditor:BasePath" value="~/fckeditor/"/>
<add key="FCKeditor:UserFilesPath" value="/upfiles/"/>
</appSettings>
在前台页面使用,先添加引用FredCK.FCKeditorV2,在aspx页面增加
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
在需要添加编辑器的地方增加
<FCKeditorV2:FCKeditor ID="FCKeditor" runat="server" ToolbarSet="Basic">
</FCKeditorV2:FCKeditor>
用FCKeditor.Value即可取得其内容。
二、扩展
1、取消浏览服务器。
为安全着想,最好在fckeditor/fckconfig.js中作如下设置:
FCKConfig.LinkBrowser = false;
FCKConfig.ImageBrowser = false;
FCKConfig.FlashBrowser = false;
在UploadAllowedExtensions中可适当增加上传类型文件。
2、
三、常见问题
1、问题描述:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /fckeditor/editor/fckeditor.html
解决办法:多半是BasePath路径配置错误,或者是其他路径配置错误。
2、问题描述:
长传文件时出现:This connector is disabled. Please check the "editor/filemanager/connectors/aspx/config.aspx" file。
解决办法:在/fckeditor/editor/filemanager/connectors/aspx中找到config.ascx文件,将其中的CheckAuthenticatioin()方法的返回值改成true。不过最好不要设成true,而是增加客户验证逻辑。
3、问题描述:
上传文件出现“Invalid request”错误。
解决办法:在fckconfig.js文件中找到
FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=File&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' +
_FileBrowserExtension ) ;
在其中加入红色字样即可。
还需要在 FCKConfig.ImageBrowserURL的值中加入Type=Image?,在FCKConfig.FlashBrowserURL的值 中加入Type="Flash"。这是在LinkBrowser设置为true的情况下。
FCKConfig.LinkUploadURL、FCKConfig.ImageUploadURL、FCKConfig.FlashUploadURL也如法炮制。
4、问题描述:
上传文件名含有中文的文件时提示 "invalid file type"。
解决办法:
<location path="~/fckeditor/editor/filemanager/connectors/aspx/upload.aspx">
<system.web>
<globalization requestEncoding="utf-8" responseEncoding="gb2312"/>
</system.web>
</location>
5、问题描述:
上传的文件没有到指定的文件夹。
解决办法:打开fckeditor\editor\filemanager\connectors\aspx目录下的config.ascx文件,设置:
TypeConfig[ "File" ].DeniedExtensions = new string[] { };
TypeConfig[ "File" ].FilesPath = "%UserFilesPath%file/";
TypeConfig[ "File" ].FilesAbsolutePath = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%file/" );
TypeConfig[ "File" ].QuickUploadPath = "%UserFilesPath%file/";
TypeConfig[ "File" ].QuickUploadAbsolutePath = ( UserFilesAbsolutePath == "" ? "" : "%UserFilesAbsolutePath%file/" );
其他Image、Flash、Media也是如此设置。
6、问题描述:
上传有中文名的文件出现乱码的问题。
解决问题:打开fckeditor/editor/dialog/fck_link目录下的fck_link.js文件,找到
oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML
修改为: var tempInnerHtml = decodeURI(sInnerHtml);
tempInnerHtml = tempInnerHtml.substring(tempInnerHtml.lastIndexOf('/')+1,tempInnerHtml.length);
oLink.innerHTML = tempInnerHtml;
四、注意事项
1、FCKeditor:UserFilesPath的值要设置成/upfiles/形式,而不是~/upfiles/形式,当然upfiles可以换成你自身的上传文件夹的名字。因为~/Files的形式
在服务器端可以编译解释的,但在在客户端无法解释此形式。如果使用~/upfiles形式,那么所有上传文件的链接就会是这样http://~/upfiles/Image/1.gif,会发生路径未找到的错误。
upfiles不要放在FCKeditor2.6.3文件夹里面,因为upfiles文件夹是要让客户端有写的权限,而让客户端写FCKeditor2.6.3文件夹会很危险。