swfupload非IE核心请求问题

swfupload非IE核心请求问题

在使用kinkeditor的过程中遇到个问题,批量上传图片总是失败,又没有明确的异常信息从控制台出来,对应的单个上传功能却正常,看了下kinkeditor的DEMO文件,也没有发现什么奇怪的地方,自己写的后台文件处理文件,接口和kindeditor提供的接口也无区别.

最后把Log4j的DEBUG日志打印出来,对比了单个文件上传和批量文件上传的DEBUG,才发现了异样.

正常上传的HTTP请求,通过SpringMVC的dispatcherservlet后,会找到RequestURI对应的Controller,而不正常的批量上传,通过DispatcherServlet后,却跳转到了LoginController进行授权处理.

整个系统的权限是基于cookie和数据库信息的,看来是批量上传时没有将cookies信息带到服务器,请求通过权限拦截器后直接就到了登录视图.

批量上传在客户端使用swfupload,查阅资料发现这是swfupload在非IE的bug,产生这个bug的原因呢,是adobe的request组件问题,adobe在延续版本时又未提供诸如将参数加入cookie的API。

转身去测试了一下在IE下的结果,批量上传功能完全正常,从浏览器兼容上考虑,批量上传的功能只能从kinkeditor上移除,不给业务带来不必要的麻烦.

要解决这个问题,也可以将鉴权的系列参数通过HTTP的POST或者GET方法传递给服务器,但考虑到这个方法会对系统的权限造成影响,所以也就不考虑了。

 

想来Flash 、Apple一类的组件都自成系统,和系统交互又只提供不完全的接口,也不开源,遇到这类的问题,从开发者的角度真心不好处理.Flash的漏洞也是很多,每每爆出Flash的漏洞都会影响一大批用户,基于Flash的网页木马更是不好防范,不开源也给0day造成了滋生土壤.乔布斯鄙视Flash的时候也是这么想的吧,哈哈…

留下回复