FCKeditor的幾點修改小結
2024-09-06 19:16:30
供稿:網友
在我的文章系統中,打算使用FCKeditor作為在線文本編輯器,在開發過程中,有幾個地方需要對編輯器
進行修改,才能滿足功能設計。
一、修改默認的上傳文件名
FCKeditor上傳文件時,默認使用客戶端的文件名,遇到重名文件,則自動重新命名,對于中文名稱
的文件也是如此,這樣對中文支持不好的服務器和瀏覽器,就容易對中文文件名的編解碼出現錯誤而導致
亂碼,因此需要將默認的文件命名方法修改為以當前日期、時間為基本要素的文件名,同時,為了避免重
復,還要用到隨機函數。在.NET中,可以用System.Redom.Next(min, max)來生成一個介于min和max之間
的隨機數,但要注意的時,System.Redom必須實例化。
此處修改需要FCKeditor的源代碼并進行重新編譯,使用VS.net 2003打開工程文件,對Uploader.cs
文件進行修改。
首先,將第46行string sFileName = System.IO.Path.GetFileName( oFile.FileName );注釋掉;
其次,在其下方加入如下代碼
DateTime dt = DateTime.Now;
string sFileName = dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() +
dt.Hour.ToString() + dt.Minute.ToString() + dt.Second.ToString() + dt.Millisecond + new
System.Random().Next(0, 999).ToString();
sFileName += System.IO.Path.GetExtension( oFile.FileName );
這樣,sFileName就是形如“20070510171005230010.jpg”的文件名了,并且不可能出現重復文件名
的現象。
按下組合快捷鍵Ctrl+Shift+B生成解決方案,將項目文件夾下的bin/Debug/FredCK.FCKeditorV2.dll
組件拷貝到網站根目錄下的bin目錄中,即可在網站工程中進行引用了。
二、把上傳的圖片動態加入編輯器所在頁面的下拉列表中
由于需要指定文章的標志圖片,除了輸入以外,還應該可以從下拉列表中選擇已經上傳的圖片,這樣
,就必須在FCKeditor上傳完圖片時,*縱編輯器所在頁面的select,并為其加入新的option。此處的關
鍵在于對靜態模式網頁對話框父窗口的引用,以及利用javascript加入option。
打開FCKeditor編輯器所在目錄的/editor/dialog/fck_image/fck_image.js文件,在文件上傳成功的
事件部分,加入以下代碼。
var ddl = oEditor.parent.document.Form1.ddlPicUrl;
var opt = oEditor.parent.document.createElement("OPTION")
opt.text = fileName;
opt.value= fileUrl
ddl.options.add(opt);
其中,oEditor是FCKeditor是對網頁對話框的父窗口的引用,而oEditor.parent就是對編輯器所在頁
面的引用了。
獲取這樣一個列表后,就可以在文章發布頁面編寫相關的javascript函數,來實現預覽、選擇等功能