在Asp.net+FCKEditor设置最新最完整配置方法(转帖)
FCKeditor相關(guān)資料簡(jiǎn)介:
官方網(wǎng)站http://www.fckeditor.net/
官方文檔http://wiki.fckeditor.net/
下載地址http://www.fckeditor.net/download/default.html
官方演示http://www.fckeditor.net/demo/default.html
下載
FCKeditor2.6.4zip是其最新的Javascript文件和圖片等;
FCKeditor.NET.zip是一個(gè)ASP.NET控件DLL文件。
啟用VS新建一個(gè)C#的WEB Site工程,取名FCKPro。
FCKeditor安裝:
所謂安裝就是一個(gè)簡(jiǎn)單的拷貝過(guò)程。把下載的FCKeditor2.6.4.zip文件包直接解壓縮到FCKPro的根目錄下,這樣根目錄下就得到一個(gè)FCKeditor文件夾,里面富含所有FCKeditor的核心文件。
然后把下載的FCKeditor.Net.zip隨便解壓縮到你硬盤(pán)的一個(gè)空目錄,里面是FCKeditor.Net的源代碼,你可以對(duì)它進(jìn)行再度開(kāi)發(fā),我們只是直接使用其目錄下的"bin"Debug目錄中的FredCK.FCKeditorV2.dll文件。
在VS中添加對(duì)FredCK.FCKeditorV2.dll的引用:
1.在FCKPro工程瀏覽器上右鍵,選擇添加引用(Add Reference…),找到瀏覽(Browse)標(biāo)簽,然后定位到你解壓好的FredCK.FCKeditorV2.dll,確認(rèn)就可以了。這時(shí),FCKPro工程目錄下就多了一個(gè)bin文件夾,里面包含F(xiàn)redCK.FCKeditorV2.dll文件。當(dāng)然,你也可以完全人工方式的來(lái)做,把FredCK.FCKeditorV2.dll直接拷貝到FCKPro"bin"下面,VS在編譯時(shí)會(huì)自動(dòng)把它編譯進(jìn)去的。
2.為了方便RAD開(kāi)發(fā),我們把FCKeditor控件也添加到VS的工具箱(Toolbox)上來(lái),展開(kāi)工具箱的常用標(biāo)簽組(General),右鍵選擇組件(Choose Items…),在對(duì)話(huà)框上直接找到瀏覽按鈕,定位FredCK.FCKeditorV2.dll,然后確認(rèn)就可以了。這時(shí)工具箱呈現(xiàn)出控件的樣子,這樣會(huì)省去很多在開(kāi)發(fā)時(shí)使用FCKeditor控件時(shí)要添加的聲明代碼。
至此,你已經(jīng)完成了FCKeditor的安裝,并可以在你的項(xiàng)目中使用FCKeditor了,當(dāng)然后面還有很多需要配置的東西。
FCKeditor詳細(xì)的設(shè)置:
進(jìn)入FCKeditor文件夾,編輯 fckconfig.js 文件。
1、此步驟是必須的,也是最重要的一步。
修改
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
改為
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php
2、配置語(yǔ)言包。有英文、繁體中文等,這里我們使用簡(jiǎn)體中文。
修改
FCKConfig.DefaultLanguage = 'en' ;
為
FCKConfig.DefaultLanguage = 'zh-cn' ;
3、配置皮膚。有default、office2003、silver風(fēng)格等,這里我們可以使用默認(rèn)。
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
4、在編輯器域內(nèi)可以使用Tab鍵。(1為是,0為否)
FCKConfig.TabSpaces = 0 ; 改為FCKConfig.TabSpaces = 1 ;
5、加上幾種我們常用的字體的方法,例如:
修改
FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
為
FCKConfig.FontNames = '宋體;黑體;隸書(shū);楷體_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana'
6、編輯器域內(nèi)默認(rèn)的顯示字體為12px,想要修改可以通過(guò)修改樣式表來(lái)達(dá)到要求,打開(kāi)/editor/css/fck_editorarea.css,修改font-size屬性即可。如font-size: 14px;
7、關(guān)于安全性。
如果你的編輯器用在網(wǎng)站前臺(tái)的話(huà),那就不得不考慮安全了,在前臺(tái)千萬(wàn)不要使用Default的toolbar,要么自定義一下功能,要么就用系統(tǒng)已經(jīng)定義好的Basic,也就是基本的toolbar,
修改
FCKConfig.ToolbarSets["Basic"] = [
???? ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
為
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-',/*'Link',*/'Unlink','-','Style','FontSize','TextColor','BGColor','-','Smiley','SpecialChar','Replace','Preview']
] ;
這是我改過(guò)的Basic,把圖像功能去掉,把添加鏈接功能去掉,因?yàn)閳D像和鏈接和flash和圖像按鈕添加功能都能讓前臺(tái)頁(yè)直接訪(fǎng)問(wèn)和上傳文件,要是這兒不改直接給你上傳個(gè)木馬還不馬上玩完?
當(dāng)然也可以配置一下WebConfig,也能讓它確保安全,接下來(lái)我們將講到。
FCKPro工程項(xiàng)目的設(shè)置:
1、配置WebConfig,在<appSettings>節(jié)點(diǎn)添加,如下所示:
<appSettings>
???? <add key="FCKeditor:BasePath" value="/項(xiàng)目名稱(chēng)/fckeditor/"/>
?? //Win2003下,Files目錄一定要有IIS_WPG用戶(hù)的寫(xiě)權(quán)限,否則可能無(wú)法上傳
???? <add key="FCKeditor:UserFilesPath" value="/項(xiàng)目名稱(chēng)/Files/" />
</appSettings>
說(shuō)明:BasePath是fckeditor所在路徑,fckeditor由于我們直接放網(wǎng)站目錄下這樣寫(xiě)就可以,如果您的網(wǎng)站多放幾層適當(dāng)調(diào)整即可。UserFilesPath是所有上傳的文件的所在目錄。我們新建了一個(gè)Files文件夾放在了項(xiàng)目中做為上傳文件的所在目錄,這里為了方便,但由于考慮到安全性,我們建議Files要單獨(dú)做wwwroot目錄下的一個(gè)站點(diǎn)比較好,和我們的站點(diǎn)FCKEditor平行。不要把它放FCKEditor里,為什么呢?因?yàn)镕iles是要讓客戶(hù)有寫(xiě)的權(quán)限的,如果放FCKEditor下很危險(xiǎn)。Files目錄要有寫(xiě)的權(quán)限。你根據(jù)自己網(wǎng)站需求設(shè)置那個(gè)帳號(hào),本文為方便設(shè)置User實(shí)際中你可能用ASP.NET帳號(hào)更合理。
2、在FCKpro工程項(xiàng)目中編寫(xiě)一個(gè)最簡(jiǎn)單的頁(yè)面
<%@ Page Language="C#"?? AutoEventWireup="true"??? CodeFile="Default.aspx.cs" Inherits="_Default" validateRequest="false" %>
<%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
// 這里要主要兩個(gè)參數(shù)
// 默認(rèn)為<%@ Page Language="C#"?? AutoEventWireup="true"??? CodeFile="Default.aspx.cs" Inherits="_Default" %>
// 我們要添加一個(gè)參數(shù) validateRequest=false,否則提交帶html代碼的內(nèi)容會(huì)報(bào)錯(cuò)
// 從客戶(hù)端(...)中檢測(cè)到有潛在危險(xiǎn)的 Request.Form 值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
???? <title>無(wú)標(biāo)題頁(yè)</title>
</head>
<body>
???? <form id="form1" runat="server">
???? <div>
???????? <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server">
???????? </FCKeditorV2:FCKeditor>
???????? </div>
???? </form>
</body>
</html>
如何獲取其內(nèi)容呢?讀取FCKeditor1控件的Value屬性值即可。
FCKEditor 2.6的問(wèn)題:
1.FCKeditor出現(xiàn)"this connector is disabled Please check the"editor/filemanager/connectors/aspx/config.aspx"錯(cuò)誤的解決辦法
打開(kāi)editor/filemanager/connectors/aspx/config.ascx修改CheckAuthentication()方法,返回true
2.在上傳文件窗口點(diǎn)擊瀏覽服務(wù)器,會(huì)出現(xiàn)the server didn't send back a proper xml.....錯(cuò)誤提示,因?yàn)楹笃诎姹镜腇CKEditor要求不同類(lèi)型的文件分別傳到不同的目錄,包括file,image,falsh,media等目錄,一定要先建立起來(lái)。
FCKeditor精簡(jiǎn)版的制作方法
進(jìn)入FCKeditor文件夾,把所有“_”開(kāi)頭的文件和文件夾刪掉,這些都是一些范例,只保留editor文件夾、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了;
進(jìn)入editor文件夾,刪掉“_source”文件夾,里面放的同樣是源文件;
退回上一級(jí)目錄進(jìn)入filemanager文件夾,有browser和upload兩個(gè)文件夾。進(jìn)入browser"default"connectors,只保留aspx文件夾,其余的刪掉;mcpuk目錄亦可刪除;upload也一樣,只保留aspx文件夾;
退到editor再進(jìn)入images文件夾,smiley里面放的是表情圖標(biāo),有msn和fun兩個(gè)系列,如果你想用自己的表情圖標(biāo),可以把它們都刪除;如果你想用這里的表情圖標(biāo)那就不要?jiǎng)h了;
lang里面放的是語(yǔ)言包,如果只是用簡(jiǎn)體中文,那么只保留fcklanguagemanager.js、zh-cn.js兩個(gè)文件就行了,建議也保留en.js(英文)、zh.js(繁體中文)兩個(gè)文件,fcklanguagemanager.js是語(yǔ)言配置文件,有了它才能和fckconfig.js里的設(shè)置成對(duì),對(duì)應(yīng)上相應(yīng)的語(yǔ)言文件,一定要保留!
再退出lang文件夾,進(jìn)入skins文件夾,如果你想使用FCKeditor默認(rèn)的奶黃色,那就把除了default文件夾外的另兩個(gè)文件夾直接刪除,如果想用別的,那就看你自己的喜好了。
至此,文件精簡(jiǎn)完畢,由原來(lái)的2.55M變成現(xiàn)在的797K了。接著修改設(shè)置。
一、自定義 FCKeditor 的 BasePathBasePath 即FCKeditor在網(wǎng)站中的相對(duì)路徑,默認(rèn)值是 /fckeditor/,最好在Web.config appSettings中對(duì)其進(jìn)行配置:
<add key="FCKeditor:BasePath" value="/FCKeditor_2.6.3/"/>
這樣做有諸多優(yōu)點(diǎn):
開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境不同,開(kāi)發(fā)環(huán)境一般是http://localhost/xxx.com/這種情況下FCKeditor就得放在一個(gè)虛擬目錄http://localhost/fckeditor/中,若涉及多個(gè)網(wǎng)站的開(kāi)發(fā),而各網(wǎng)站的FCKeditor有差別時(shí),這樣顯然不是最優(yōu);
而且因?yàn)槲锢砟夸浗Y(jié)構(gòu)與邏輯目錄結(jié)構(gòu)不同,也會(huì)有發(fā)生錯(cuò)誤的隱患;
而如果采用Web.config的配置,就可以在開(kāi)發(fā)環(huán)境采用不同的配置,FCKeditor的物理路徑與生產(chǎn)環(huán)境保持一致;
當(dāng)升級(jí)FCKeditor時(shí),只需要將新版本的FCKeditor放在相應(yīng)版本號(hào)的目錄里,修改一下配置即可。這樣可以解決因?yàn)殪o態(tài)資源的客戶(hù)端緩存問(wèn)題,不同用戶(hù)出現(xiàn)不同的錯(cuò)誤的問(wèn)題;
可以直觀地看到自己的FCKeditor的版本號(hào)。
二、配置文件上傳的目錄
FCKeditor的文件上傳(如圖片上傳)目錄可以通過(guò)Web.config appSettings進(jìn)行配置,如:
<add key="FCKeditor:UserFilesPath" value="/UploadFile/FCKeditor/"/>
也可以在/FCKeditorBasePath/editor/filemanager/connectors/aspx/config.ascx 中進(jìn)行配置,但我建議 FCKeditor 目錄中的內(nèi)容能不改就不改(fckconfig.js除外),這樣日后升級(jí)可以放心地替換即可。
三、自定義文件上傳的子目錄的格式
我們知道,一個(gè)文件夾下面不能存放過(guò)多的文件(據(jù)稱(chēng)Windows下面的目錄下2000為閾值),否則對(duì)該目錄的訪(fǎng)問(wèn)會(huì)嚴(yán)重影響I/O性能。而FCKeditor的文件存儲(chǔ)是在單一的一個(gè)目錄進(jìn)行的。我對(duì)FCKeditor進(jìn)行了擴(kuò)展,可以在Web.config appSettings對(duì)存儲(chǔ)目錄的格式自定義,如:
<add key="FCKeditor:FolderPattern" value="%y/%m-%d/"/>
以今天的日期為例:這樣產(chǎn)生的文件上傳子目錄格式為:2008/10-21/。
年月日格式的目錄可以隨意組合,如:
<add key="FCKeditor:FolderPattern" value="%y/%m/%d/"/>
這樣產(chǎn)生的文件上傳子目錄變成了2008/10/21/
參考:
%y??? 代表 當(dāng)前時(shí)間的年份
%m??? 代表 當(dāng)前時(shí)間的月份
%d??? 代表 當(dāng)前時(shí)間的日
四、自定義文件上傳的文件名格式
FCKeditor對(duì)文件名的處理規(guī)則是:如果當(dāng)前目錄下沒(méi)有重名文件,則上傳后的文件名與用戶(hù)PC上的文件名一致;若存在n個(gè)重名文件,則加入用戶(hù)PC上的文件名是Example.xxx,上傳后的文件名變?yōu)?#xff1a;Example(n).xxx
我的項(xiàng)目里要求對(duì)用戶(hù)上傳的文件名變成Guid的格式,所以我對(duì)FCKeditor也做了擴(kuò)展,在Web.config appSettings可以對(duì)上傳后文件的格式自定義,如:
<add key="FCKeditor:FilenamePattern" value="%guid.%extl"/>
這樣的文件名如:a299e63a-7d2d-493d-bbb9-99162ef5b6b8.gif
參考:
%guid??? 代表 一個(gè)新的guid字符串
%fnl??? 代表 源文件名的小寫(xiě)
%fnu??? 代表 源文件名的大寫(xiě)
%extl??? 代表 源文件擴(kuò)展名的小寫(xiě)
%extu??? 代表 源文件擴(kuò)展名的大寫(xiě)
五、對(duì)上傳圖片進(jìn)行縮放處理
用到FCKeditor圖片上傳功能的場(chǎng)景中,很多是內(nèi)容的發(fā)表。內(nèi)容中往往不需要幾千像素大小的圖片,比如我的項(xiàng)目中,文章區(qū)域最寬也就560像素,所以我做了一個(gè)擴(kuò)展,在Web.config appSettings中可以對(duì)圖片的最大寬度進(jìn)行自定義:
<add key="FCKeditor:MaxWidthOfUploadedImg" value="560"/>
有了這段配置,上傳后的圖片的寬度都控制在了560像素及以?xún)?nèi)
六、自定義上傳后圖片URL中的域名
為了加快頁(yè)面的渲染,我們可以把圖片等靜態(tài)資源放在一個(gè)獨(dú)立的域名當(dāng)中。但FCKeditor默認(rèn)的圖片上傳后URL是相對(duì)路徑, 如:/fck/2008-03-01/1.jpg:
我增加了這個(gè)擴(kuò)展,在Web.config appSettings可以配置上傳后圖片URL的域名,如:
<add key="FCKeditor:UploadedFilesDomain" value="http://www.hong100.cn/"/>
圖片地址就變成絕對(duì)地址了,形式如: :http:www.aa.com/fck/2008-03-01/1.jpg
七、解決上傳文件名含有中文的文件時(shí)提示 "invalid file type" 的問(wèn)題
這個(gè)問(wèn)題只需要在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>
注意:
responseEncoding是網(wǎng)站的默認(rèn)編碼
FCKeditor_2.6.3是FCKeditor的BasePath
八、FCKeditor的安全性
在FCKeditor的2.3.2版本里,曾有一個(gè)漏洞,可以通過(guò) /editor/filemanager/browser/default/connectors/aspx/connector.aspx 往服務(wù)器上傳任意文件,我的網(wǎng)站就曾經(jīng)中招。
2.6.3雖然暫未發(fā)現(xiàn)類(lèi)似的問(wèn)題,但一般情況下用不到的文件最好還是刪除比較好:
FCKeditor BasePath 根目錄中除了保留:
/editor
/fckconfig.js
/fckpackager.xml
/fckstyles.xml
/fcktemplates.xml
/license.txt外,全部刪除
/editor/filemanager/中除了保留:
/connectors/aspx/config.ascx
/connectors/aspx/upload.aspx外,全部刪除
刪除
/editor/_source/
/editor/filemanager/connectors/aspx/config.ascx 的 CheckAuthentication() 方法中,增加驗(yàn)證用戶(hù)是否登錄的邏輯
轉(zhuǎn)載于:https://www.cnblogs.com/windsea123/archive/2009/08/10/1543177.html
總結(jié)
以上是生活随笔為你收集整理的在Asp.net+FCKEditor设置最新最完整配置方法(转帖)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。