webuploader.js图片上传插件,关于flash跨域问题

webuploader.js图片上传插件

var uploader = WebUploader.create({
    // 选完文件后,是否自动上传。
    auto: true,
    // swf文件路径
    swf: 'js/Uploader.swf',
    // 文件接收服务端。
    server: 'http://jasmine.55ideal.com/pc/opus/upload ',
    // 选择文件的按钮。可选。
    // 内部根据当前运行是创建,可能是input元素,也可能是flash.
    pick: '#picker',
    method: 'POST',
    formData:{
       token:$.cookie("token")//与后台约定好的参数
    },
    // runtimeOrder:'html5,flash',
    // sendAsBinary:true,
    // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
    resize: false
});

在chrome下默认用的是HTML5模式上传图片,用起来没问题,但是用IE7/8/9打开,则总是提示图片上传失败。

原因如下:

IE7/8/9下采用的是flash模式上传图片,所以服务器除了需要设置HTML5模式下的ajax跨域外,还需要设置flash模式下的flash跨域,这样才能使用flash上传图片。

flash跨域需要在服务器根目录放一个XML文件,固定名称为:crossdomain.xml

第一种:
<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="www.friendOfFoo.com" />
  <allow-access-from domain="*.foo.com" />
  <allow-access-from domain="105.216.1.41" />
</cross-domain-policy>

第二种:
<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

 

posted @ 2017-08-21 09:20  甘小春  Views(1736)  Comments(0)    收藏  举报