因为 IE低版本(IE8, IE9)对 html5 支持的不完善,为了在这些浏览器里面实现文件直传的功能, BOS 开发了 PostObject 接口,通过一个 multipart/form-data 的格式,就可以把文件上传到 BOS 服务器。
我们已经在 bce-bos-uploader 实现了对这个接口的支持,使用 之前需要进行额外的配置工作:
基于html5的跨域方案,我们需要设置 cors;如果通过 flash 来完成跨域数据交互的话,需要设置 crossdomain.xml,可以直接把
如下内容保存为 crossdomain.xml
,然后上传到 bucket
的根目录:
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" secure="false" /> </cross-domain-policy>
请参考服务端动态签名
通过 bower 安装最新的 bce-bos-uploader
bower install bce-bos-uploader
因为低版本的IE对 es5 的一些特性支持的不完善,所以需要引入 polyfills 文件来处理一下。
<!--[if lt IE 8]><script src="bower_components/json3/lib/json3.min.js"></script><![endif]--> <!--[if lt IE 9]><script src="bower_components/js-polyfills/es5.js"></script><![endif]--> <!--[if lt IE 10]><script src="bower_components/moxie/bin/js/moxie.min.js"></script><![endif]-->
然后在初始化 baidubce.bos.Uploader
的时候,设置一下 flash_swf_url
即可:
var uploader = new baidubce.bos.Uploader({ ... flash_swf_url: 'bower_components/moxie/bin/flash/Moxie.swf' ... });