• 注册
热门标签
↑ 收起导航

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

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

跨域上传所要完成的就是两个页面的数据交换,此时浏览器会首先比较两个页面的 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,并在上传完成后自动返回地址到文章编辑区域。下一步要做的就是安全,设想通过验证来路或提交密码来验证上传权限!这点还没想好如何做,还请大家多多指教,出出点子!!

版权声明:转载请注明来自杨俊伟博客,本文地址:http://yangjunwei.com/a/427.html
除非注明,杨俊伟博客文章均为原创,转载请注明出处和链接!
 

10 条评论 »

  • 羽希范
    2016/01/23 05:14:29

    你加油吧!!!

  • mustar
    2010/08/13 09:57:48

    跨域的问题我估计大家都或多或少研究过,但更多的应该是安全问题不好解决。

  • 飘易
    2010/06/13 09:06:40

    如果你仅仅通过js来验证,始终是不安全的,js是客户端的。

    nuodou 于 2010-6-13 12:34:25 回复

    所以一直在找个解决方法,发现你已经有研究了

  • 中国餐具网
    2010/05/26 16:03:17

    好像不错啊···

  • 网站seo
    2010/05/26 12:58:52

    能做到跨域上传就已经很牛了,我也想把附件从空间里面移出呢.有机会学习一下.

    nuodou 于 2010-5-26 13:00:58 回复

    利用的是iframe,不算是真正的跨域,但只要达到我的要求就行了呵呵!下面的安全是个事儿啊

  • 微酷
    2010/05/23 21:35:16

    我想的很简单,在图片服务器做个上传图片的文件,不必设置权限,直接上传,返回地址。OK.就像单独一个上传组件。

    nuodou 于 2010-5-23 22:18:31 回复

    这样会存在安全问题,比如知道上传参数,就可以直接上传到你服务器了!这个我测试过呵呵

  • 微酷
    2010/05/23 21:22:16

    告诉你,这个想法我N久以前就想要实现了,不过水平不行,没搞定。期待你的好消息,搞定后帮我解决一下。

    nuodou 于 2010-5-23 21:24:22 回复

    哈哈,你的实现方法可以分享一下不?接合一下思路

  • ubosm
    2010/05/23 15:17:57

    其实用CSS雪碧还是不错

    ubosm 于 2010-5-23 20:41:49 回复

    css雪碧 可以节约一点点流量!

  • diyidu
    2010/05/23 11:26:40

    呵,还没试过这么搞:)

    nuodou 于 2010-5-23 13:25:43 回复

    可以试一下

  • 疾风
    2010/05/23 06:39:18

    哇塞 还厉害哦~

发表评论 



我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册