webuploader在IE8/9下上传遇到的两个问题

Posted 落忆无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webuploader在IE8/9下上传遇到的两个问题相关的知识,希望对你有一定的参考价值。

最近在做图片上传功能。

点击一个按钮,弹出一个iframe,它是百度的webuploader插件

在点击关闭按钮时,IE9下总是会报错: __flash__removeCallback未定义错误

解决办法很简单,就是在关闭前直接清空含有此flash控件的dom元素。

原因在以下两篇博文里:http://blog.csdn.net/lanfeng330/article/details/8492910

http://blog.csdn.net/qq282030166/article/details/45308121  

谢谢前辈。

 

另外,这个控件其自身有两种上传模式

在不支持html5上传的浏览器中(IE8/9等),会使用flash的方式进行上传

可是却发现报错了。通过跟踪发现,它有请求crossdomain.xml文件,这是什么鬼?

原来,

flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。

位于www.a.com域中的SWF文件要访问www.b.com的文件时,SWF首先会检查www.b.com服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功;若crossdomain.xml文件存在,且里边设置了允许www.a.com域访问,那么通信正常。所以要使Flash可以跨域传输数据,其关键就是crossdomain.xml。

所以在初始化uploader时,定义的swf的路径如果是 abc.test.com/..../upload.swf

那么,这个xml文件就应该放在 abc.test.com的根目录下面,并且一定要确保 abc.test.com/crossdomain.xml可以直接访问到

 

但这时IE下依然请求不到这个文件,原因如下文所述

http://www.jianfangkk.com/aspnet/201501/206

所以最后解决方案是:

<system.webServer>
     <staticContent>
       <remove fileExtension=".xml" /> 
       <mimeMap fileExtension=".xml" mimeType="text/plain" /> 
     </staticContent>
</system.webServer>

 

以上是关于webuploader在IE8/9下上传遇到的两个问题的主要内容,如果未能解决你的问题,请参考以下文章

WebUploader文件图片上传插件的使用

asp.net mvc之图片上传,webuploader多实例上传疑问,在这里轻松解决!

asp.net mvc之图片上传,webuploader多实例上传疑问,在这里轻松解决!

解决WebUploader 上传按钮按F12 才行的问题

jsp使用七牛云API和webuploader上传多组图片

关于WebUploader上传文件插件的headers.token拦截问题