跨域上传:将图片附件上传到独立服务器

一直想把博客上的图片都放到一个静态空间里,这样方便备份操作,更利于缓解服务器压力,特别是在做一些站之后,这种想法越来越强烈了,这两天也在考虑这事,终于完成了前期的操作,顺利上传并自动返回图片远程路径!

跨域上传所要完成的就是两个页面的数据交换,此时浏览器会首先比较两个页面的 domain 属性,如果 domain 属性相同,那么浏览器就允许它们之间的数据交换,这里包括上传和返回值操作,否则就返回“拒绝访问(Access Denied)”的错误。

这样,我们可以通过JavaScript在页面中加入如下声明来强制指定页面所属的域,并在所有涉及跨域操作的文件里加上那段代码就OK。

<script language="JavaScript">
<!-- 
document.domain = "yangjunwei.com";  //指定 document 所属的域,以完成跨域上传 
-->
</script>

document.domain 属性是不可以随便设置的,它只能被设置为文件所属域的上级域。

假设 ImgUpload.php 属于 data.yangjunwei.com ,那么它的 document.domain 属性可以设置为“yangjunwei.com” ,但不能设置为“img.yangjunwei.com” 或其他的。

只有当两个域存在相同的上级域时,才能通过指定 document.domain 来实现它们之间的数据交换,并且 document.domain 属性必须被设置为二者的公共域

例如,Writenews.php 属于 news.nuodou.com,而 ImgUpload.php 属于 data.yangjunwei.com,那么无论你如何设置 document.domain 都无法在它们之间交换数据。

目前我完成的步骤是:顺利上传图片到 data.yangjunwei.com,并在上传完成后自动返回地址到文章编辑区域。下一步要做的就是安全,设想通过验证来路或提交密码来验证上传权限!这点还没想好如何做,还请大家多多指教,出出点子!!