项目宗旨
在主站www.123.com用UE编辑器上传图片时,可以将图片上传到www.abc.com
环境是:www.123.com所在服务器为58.210.33.55,而www.abc.com在另一台独立服务器182.111.56.89
实现过程
经过实验,UE在不同根域名之间跨域是实现不了的。
所以,只能将图片上传到同一个域名的img.123.com
第一步
在主站www.123.com文章添加页面首先要调用一个跨域UE编辑器,也就是说,主站不放置UE编辑器。因为主站部署UE的话,上传的图片依然在主站文件夹内,除非你主站www.123.com部署的UE的图片上传路径设置比如为E:\upimg然后www.abc.com也绑定到主站IP的服务器,并且将www.abc.com绑定到E:\upimg这个目录。这样的话,www.123.com主站添加文章时UE上传的图片会在E:\upimg之下,也就实现了利用www.abc.com来作为独立图片服务器。但是这样做没有任何意义,因为两个不同根域名用的是同一台服务器,同一条带宽。如果想用两台服务器,那就需要将abc.com所在的服务器与123.com组成同一个内网中,并且共享路径的方式。显然,这种方法对于不再同一内网网段的两台服务器来说也没有搞的价值。
废话了一些,所以,两个根域名我们根本就不用不考虑了。比如你像用www.123img.com作为www.123.com的图片服务器,这种还是放弃吧。如果大家有方法可以到我们酷站领地官方论坛发帖讨论(http://www.kz6d.com/bbs/)。今天要说的就是同一个根域名,建立UE的跨域上传方法。
所以第一步,在主站www.123.com的文章添加页面加入以下方法,首先要调用img.123.com的编辑器。也就是说,无需在主站部署UE,直接在图片服务器img.123.com部署一套UEditor,然后主站直接调用
<script type="text/javascript" src="http://img.123.com/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="http://img.123.com/ueditor/ueditor.all.js"></script>
第二步
在主站文章页面调用编辑器之前,加入以下代码:
<script type="text/javascript">
document.domain = "123.com";
</script>
这里是编辑器之前,记住,上面的代码要加入在编辑器调用代码之前,以及form之前。
<script type="text/javascript">
UE.getEditor(’Content’,{
initialFrameWidth : 682,
initialFrameHeight: 220
});
</script>
</form>
第三步
这个时候还没有结束,这个时候你点主站调用IMG服务器的编辑器会发现页面是凌乱和未加载成功的,或者提示后端失败等等。
这个时候,还需要在img.123.com的UE编辑器的dialogs\internal.js中加入一条代码:
(function () {
var parent = window.parent;
document.domain = ’123.com’;
在var parent = window.parent;的后面加入document.domain = ’123.com’;
解决问题
刷新主站文章编辑添加页面,这回试试点击多图上传,是不是正常了?添加两个图片上传试试,你会发现插入的图片无法预览出来,别急,找到UE下asp\config.json文件,用记事本打开,找到下面代码,将你的img.123.com添加到红色文字区域。保存的时候注意,记事本保存要保存为utf-8编码方式。ANSI可能也没问题,具体自己试试。
"imageUrlPrefix": "http://img.123.com", /* 图片访问路径前缀 */
好了,这回在主站www.123.com上传图片后,图片就自动预览并上传到img.123.com所在的服务器了!使得网站在多的图片也不会影响主站的运行速度了。这种方法同样适用于JSP版本,.NET版本,PHP版本。不同的是,.net版本没有ASP这个文件夹,是叫NET的文件夹。JSP和PHP自己找下,肯定都有。这类文件夹是UE的后端系统。