因為昨天晚上急著要把理事會員的圖片送上網,所以采用FTP傳送圖片,然后使用<img src="/Upload/abcd.jpg" />這樣的笨方法把圖片全部搞定。
今天上午8點,開始研究這個問題,在網上查到了這樣的帖子,原文如下:
最近有個項目用到FCKEditor,載了目前最新版的2.6.4,配置一切OK,調試狀態一切OK,發布到服務器(windows server 2003 sp2),問題來了……
上傳圖片后頁面左下腳出現腳本錯誤提示,點開可看到是“沒有權限”的提示,并且上傳窗口一直凍結在進度條狀態(Upload in progess, please wait...),查閱多方資料,包括國外官方論壇上相關資料,無解。
困惑之余,突然發現圖片上傳并非沒有成功,服務器上已存在被上傳的文件,只是窗口一直被凍結在進度條狀態,于是考慮到是不是腳本錯誤導致。
終于在源代碼文件FileBrowser/FileWorkerBase.cs里找到這樣一行代碼:
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;}}})();" );
刪除里面的 try{document.domain=d;}catch (e){break;} 后,重新編譯,然后在項目里重新添加引用后,問題解決。
按照上述方法,問題真是解決了。注意編譯的方法是:
進入FCKeditor.Net_2.6.3目錄,使用VS2008打開FredCK.FCKeditorV2.vs2005.csproj,因為文件版本是VS2005的,所以問要不要轉換(原版本有備份),選擇是,文件打開。點擊菜單“生成 > 配置管理器”,把“活動解決方案配置”由默認的“debug”改為“release”,點擊“關閉”按鈕。
然后再次點擊菜單“生成 > 生成FredCK.FCKeditorV2.vs2005”,這時就自動生成了FredCK.FCKeditorV2.dll,并且生成在原來的位置即FCKeditor.Net_2.6.3/bin/release/2.0 目錄內,把這個生成的文件復制并覆蓋在服務器上 bin 目錄的原來的文件,OK!
再來試一下網絡上的FCKeditor上傳圖片功能,成功!