今天做了个txt批量导入,大体意思是将txt里的数据上传,通过解析txt,将数据存入数据库,但是上传的时候在火狐上不走struts2的action,但是却走了,响应函数,令我极其费解,之前做的上传在火狐上从未出过问题。在网上查了些资料,发现在实现异步上传的时候,每一个文件在上传时都会提交给服务器一个请求。每个请求都需要安全验证,session和cookie的校验。是的,就是这样。由于jquery uploadify是借助flash来实现上传的,每一次向后台发送数据流请求时,ie会自动把本去cookie存储捆绑在一起发送给服务器。火狐为了提高安全性,firefox不会这样做。
所以找到了答案,session的问题,以前了上传没出毛病是因为上传没调用session,这次的上传 正好我异步上传从session里取登录用户的信息,但是这样不可以。
解决方案,我找了个最笨的方法,就是不在异步上传的时候取session里的东西,而是在走前一个页面的时候取,然后通过jquery uploadiy的scriptData把所要的东西传进来,这样就可以避免,火狐下上传失效的问题了。