因为昨天晚上急着要把理事会员的图片送上网,所以采用FTP传送图片,然后使用<img src="http://www.jb51.netUpload/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上传图片功能,成功!