·您当前的位置:首页 > 技术教程 > PHP教程 >

[PHP]PHP视频跨域文件上传解决方案

时间:2014-08-11 10:19酷播
最近工作中有这样的需求:项目在A机器(假设域名为www.a.com)上跑,资源文件要存储在专门的资源机器B(假设域名为www.b.com),要求在A上传文件到B上同时将上传信息以json格式返回

[PHP]PHP视频跨域文件上传解决方案

  1. 最近工作中有这样的需求:项目在A机器(假设域名为www.a.com)上跑,资源文件要存储在专门的资源机器B(假设域名为www.b.com),要求在A上传文件到B上同时将上传信息以json格式返回。   
  2.     
  3. 由于之前的项目都比较小,也没有这样的需求,基本都是在单机上操作,自然涉及不到跨域的问题,初次遇到这个问题,比较棘手,进行了如下尝试均失败。   
  4.     
  5. 尝试一:在A机器上的页面中嵌入一个iframe,iframe的src指向B机器的一个上传页面,这样可以很容易将资源上传到B机器,但是却很难实现“以json格式返回上传信息”{/*当然这里可以想将返回的数据写到B机器的上传页面,然后在提交A页面的表单时,利用js从B机器上获取返回数据,但是这样太过繁琐,且耦合度极大,基本可以放弃*/}。   
  6.     
  7. 尝试二:利用SWF上传插件,借助AS脚本上传,比较著名的插件如:JQuery Uploadify支持此功能,这种方法利用了Flash沙箱原理,理论上可以完成跨域上传,但是前提是需要对服务器有绝对的控制权,因为这种方法需要域名的根目录下存在一个跨域访问的策略文件crossdomain.xml,客观条件限制,次尝试亦失败。   
  8.     
  9. 以上两次尝试都已失败告终,无奈只好在CSDN上求助,CSDN果然强悍,感谢moocky网友提供思路:   
  10.     
  11.    
  12. 上传文件到A网站,然后通过PHP的ftp函数、或HTTP模拟上传到B,这样的话返回的json一直是在A网站上的;另外也可以参考一下腾讯的,如果两个网站都是你的,比如你a网站的域名为www.a.com,在B网站同时绑定一个域名upload.www.a.com,就可以直接上传到B网站并返回json数据了   

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器