admin管理员组文章数量:1650768
使用uploadify控件操作文件上传,发现此控件是单个文件上传,比如我选择了5个文件,点击上传,是分别调用5次上传方法进行保存;
在IE9+及谷歌下操作均正常,360浏览器兼容模式下也能正常操作,但是360极速模式下报302错误,网上找资料讲的基本上是:
1、js或css文件路径不对,比如:IE、谷歌<script type="text/javascript" src="uploadify/jquery.uploadify.js"></script>
但是在360极速模式下需要<script type="text/javascript" src="/uploadify/jquery.uploadify.js"></script>或<script type="text/javascript" src="./uploadify/jquery.uploadify.js"></script>
2、路径请求:如下图
需要在swf文件路径后添加随机数保证每次请求不同;
总结:以上好像针对老版本的可以生效,但是新版本的uploadify似乎不行;
最后发现,原因是uploadify发送请求时,360浏览器极速模式下不发送session(网上查询得出),拦截器获取的session一直为null,导致拦截判断当前未登录而没有进行上传操作(用户未登录无法获取当前操作人员);
以下为拦截器代码:
开始想:在初始化上传页面的时候生成个随机数,然后将随机数保存在session中,并且发送到页面,保存时讲这个随机数带到后台,判断session是否存在这个随机数,存在即让通过;测试发现,通过session.getAttribute("随机数Id")一直未null;
后来通过获取初始化时的sessionId和上传请求是的sessionId发现,并不是同一个session,由于uploadify上传操作请求,是基于插件发出的,和浏览器的请求有区别;
最后只能在用户登录成功之后,将session保存到一个Map集合中,key为sessionId,在页面初始化话是,将sessionId带到页面,随着上传请求一起发送到后台,然后验证当前session如果为空时(上面讲了360浏览器不发送session导致session为空),拿到上传操作中的sessionId,到Map集合中验证是否存在session,如存在,则说明用户已经登陆,正常通过;
版权声明:本文标题:uploadify上传文件在360浏览器急速模式下失败 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729520682a1204480.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论