技术开发 频道

ASP.NET 2.0使用FCKEditor初体验

  • 第一次使用:
    • 拖拉控制項到頁面中,切換到原始檔中
    • 您會發現在上方自動會幫您加入以下的程式碼
    <%@ Register Assembly="FredCK.FCKeditorV2" Namespace="FredCK.FCKeditorV2"
    TagPrefix
    ="FCKeditorV2" %>
    • 並且會加入以下的FCKeditor控制項
    <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server"> 2 </FCKeditorV2:FCKeditor>
    • 此時如果去執行,就會出現以下的錯誤
    HTTP 錯誤 404 - Not Found

    這是由於程式還不知道要到哪裡找相關的工具檔案

  • 設定工具檔案目錄(BasePath="~\FCKeditor\")
    <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" BasePath="~\FCKeditor\"> 2 </FCKeditorV2:FCKeditor>
  • 此時再試一次,就會出現感動的畫面啦

    設定圖片上傳的功能
    • 不過再仔細的是用一下,卻會發現圖片上傳的功能無法使用



  • 這是因為FCKeditor不知道應該把檔案上傳到哪裡去存放,所以要把這個設定加在Web.config中
  • 首先在您的Web專案中增加一個目錄來存放使用者上傳的資料,假設是【UserFiles】
  • 修改Web.config增加設定,把原本的<appSettings/>改為
    <appSettings> 2 <add key="FCKeditor:UserFilesPath" value="/tt/UserFiles/"/> 3 <!--tt代表您的Web專案名稱--> 4 </appSettings>
  • 除此之外,由於FCKEditor預設是給asp使用,所以還需要在設定改為使用aspx
  • 設定改為aspx:
    • 在剛剛複製進來的FCKeditor目錄中找到一個檔案【fckconfig.js】
    • 搜尋字串asp,可以找到以下兩個設定
    var _FileBrowserLanguage = 'asp' ; var _QuickUploadLanguage = 'asp' ;

    改為

    var _FileBrowserLanguage = 'aspx' ; 2 var _QuickUploadLanguage = 'aspx' ;
  • 這個部分小喵曾多方測試,發現開啟站台時使用File的方式無法測試出來,不過如果是使用http透過IIS的方式建立站台就正常。

    程式上的使用:

    • 我們先測試一下如何應用FCKeditor,先再畫面上安排一個FCKeditor與2個Div並且給予id,並指定runat="server",並且安排一個按鈕,希望按下按鈕後,編排的結果畫面呈現在div1,而原始檔則顯示在div2中
    1 <div> 2 <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" BasePath="~/FCKeditor/"> 3 </FCKeditorV2:FCKeditor> 4 </div> 5 <asp:Button ID="Button1" runat="server" Text="Button" /> 6 <br /> 7 顯示結果: 8 <div id="div1" runat="server" style="border-right: black thin solid; border-top:
    black thin solid; border-left: black thin solid; border-bottom: black thin solid;
    ">
    Div1
    </div> 9 <hr /> 10 原始碼: 11 <div id="div2" runat="server" style="border-right: black thin solid; border-top:
    black thin solid; border-left: black thin solid; border-bottom: black thin solid;
    ">
    Div1
    </div>

    接著安排一下程式控制如下

    1 Protected Sub
    Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    2 Me.div1.InnerHtml = Me.FCKeditor1.Value
    3 Me.div2.InnerText = Me.FCKeditor1.Value
    4 End Sub
  • 接著執行看看,在編輯器中隨便輸入些字,改變一下字的大小、樣式接著按下按鈕
  • 此時又有錯誤出現了
    具有潛在危險 Request.Form 的值已從用戶端 (FCKeditor1="<strong><em><font st...") 偵測到。
  • 這是因為事實上送出的時候,所送出的內容是HTML的語法,而ASP.NET預設為了安全起見不允許html的語法,所以這時候,還要再修改個東西,把剛剛的aspx最上方加上以下的屬性設定
    validateRequest="false"
  • 再重新整理一次結果,就可以看到效果
  • 所以使用上,要存入資料庫只要把Me.FCKeditor1.Value的內容存入資料庫就可以了,要從資料庫中取回,也可以使用Me.FCKeditor1.Value = Dr.Item("FieldsName")就可以了,真是方便啊!!
  • 安全上的注意事項:

    • FCKeditor雖然設定上還蠻複雜的,不過程式撰寫上真的很方便使用,不過這裡還要特別注意一些事情,由於使用時會將html的語法的Request安全設定打開,因此有可以會讓您的網站,被殖入<iframe>的攻擊,所以建議承接Me.FCKeditor1.value後,最好先處理一下是否有<iframe>的資料,如果有,最好替換掉、或者發出警告讓使用者不允許填入<iframe>
  • 0
    相关文章