java应用uploadify 3.2丢失session

http://c-bai.iteye.com/blog/1829269

uploadify上传用的是一个flash插件。 
flash中有个bug就是自身创建一个session,这样就导致与web本身的session不一致 权限验证失败的问题。  就是这个问题 让我花了好多时间来解决 
查询百度 、google、以及stackoverflow多日 大都是写php和asp.net中的例子

这让我很头疼,最终在某个博客 看到解决的 问题,经过本人测试 这个解决方法可行,跟大家分享一下 ,以及下次自己碰到一样问题的时候方便查阅

原因:

因为uploadify是不会自动传送session值的,所以当session被拦截后,它的请求是发不出去的(补充,还有一种情况就是uploaddify是使用flash来处理文件文件上传,而在在非IE浏览器(Firefox,Chrome)下使用flash方式向服务器发起请求,是会新生成一个session的(此时旧的session则丢失了),如果要避免这个问题,需要把当前的sessionId作为形参传给servlet类); 

 $("#uploadify").uploadify({
'swf' : basePath+'js/component/uploadify/js/uploadify.swf',
'uploader' : 'uploadFile.action;jsessionid=<%=session.getId(%>', // 上传到后台的处理类
'cancelImg' : [b][b][/b][/b]basePath+'js/component/uploadify/img/uploadify-cancel.png', // 取消按钮的图片
'fileObjName' : 'uploadify', // 传到后台的对象名
'queueID' : 'fileQueue',
'fileSizeLimit' : '8589934592', // 限制文件上传的大小
'formData' :{'userId':userId},
'progressData' : 'percentage', //有speed和percentage两种,一个显示速度,一个显示完成百分比
'buttonText' : '添加附件', // 按钮上的文字
'auto' : false, // 是否自动上传
'multi' : false, // 是否支持多文件上传
'removeComplete': false,
'onQueueComplete' : function (queueData){
alert("上传完毕!"); }
});

补充:uploadify上传时,只要一初始化就会发出一个请求,而这个请求是当前页面的地址, 
解决方法是:

将jquery.uploadify.min.js(我用的版本是3.2)原来的代码:

 1 this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url)

替换为:

 1 this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url = this.settings.button_image_url ? SWFUpload.completeURL(this.settings.button_image_url) : this.settings.button_image_url

java应用uploadify 3.2丢失session的更多相关文章

  1. uploadify 3.2 java应用丢失session

    flash中有个bug就是自身创建一个session,这样就导致与web本身的session不一致 权限验证失败的问题.  原因: 因为uploadify是不会自动传送session值的,所以当ses ...

  2. java.lang.NoClassDefFoundError: org/apache/ibatis/session/SqlSession

    在配置一个springmvc+mybatis的项目时,总是有报一个错误: org.springframework.beans.factory.BeanCreationException: Error ...

  3. 玩转CSLA.NET小技巧系列一:跳转页面丢失session,如何解决

    很少写代码,最近在写代码被登录难倒了,这丫的一直在跟我较劲 每次登录完跳转到首页后还是未登录状态 if (ModelState.IsValid) { bool isSuccess = FI.Finan ...

  4. java.lang.ClassNotFoundException: com.radiadesign.catalina.session.RedisSessionHandlerValve

    org.apache.tomcat.util.digester.Digester.startElement Begin event threw exception java.lang.ClassNot ...

  5. 【报错】java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession

    报错 java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession 或者 java.lang.ClassNotFound ...

  6. idea调试SpringMvc, 出现:”javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed"错误的解决方法

    调试拦截器出现以下错误: HTTP Status 500 - javax.servlet.ServletException: java.lang.IllegalStateException: Cann ...

  7. JQuery文件上传插件uploadify在MVC中Session丢失的解决方案

    <script type="text/javascript"> var auth = "@(Request.Cookies[FormsAuthenticati ...

  8. 解决uploadify在Firefox下丢失session的问题

    今天在用uploadify上传插件时遇到了一个问题,由于我后台做了权限管理,每个请求都有去读session判断权限,但用这个插件时发现登录后上传不了,原因是在读session时认为没有权限而被拦截了, ...

  9. java web学习总结(十三) -------------------使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

随机推荐

  1. 合并js文件minify实例

    将min目录放入项目中后,js中引入方式是: <script type="text/javascript" src="__PUBLIC__/min/?b=publi ...

  2. MySQL 5.7: Enhanced Multi-threaded slaves

    http://geek.rohitkalhans.com/2013/09/enhancedMTS-deepdive.html   科学上网 Introduction Re-applying binar ...

  3. 真机下, 如何在File Explorer里看data下的数据?

    首先手机得Root , 你如果想单个单个的看, root explorer可以设置Permission Other下的两个权限点上就ok了. 如果想看到所有的, 即子目录也可以看到, 只需要adb r ...

  4. 主流Jquery弹出框优缺点对比

    一:BoxXy 缺点:动态加载隐藏的内容层时,是复制操作,而不是引用原内容层,这样会出现两个一样的内容层,影响id,class的jquery操作 二:artdialog

  5. 小白日记42:kali渗透测试之Web渗透-SQL盲注

    SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...

  6. 使用JS制作一个鼠标可拖的DIV(四)——缩放

    原理与鼠标拖动 DIV 相同. 下面就先实现一个在DIV的右上角显示一个小正方形(类似). 当鼠标按下并拖动时,DIV会以要拖动的元素的左下角的坐标点定位,根据鼠标的拖动,按比例的扩大或缩小. 一.思 ...

  7. Java基础知识强化103:Java常量池理解与总结

    一.相关概念 1. 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. 2. Class文件中的 ...

  8. C#动态引用DLL的方法

    C#编程中,使用dll调用是经常的事,这样做的好处是非常多的,比如把某些功能封装到一个dll中,然后主程序动态调用这个dll. 废话不多说,举例说明如下. 首先,我们需要封装一个dll,vs2008下 ...

  9. Objective-C ,ios,iphone开发基础:几个常用类-NSNumber

    2013-08-21 在Objective-C,包括int double float 等等再内的基础数据类型都不是一个类,所以就不能给它们发送消息,也就是说不能调用方法,那怎么办呢 ?Objectiv ...

  10. TensorFlow安装与测试

    官网:http://tensorflow.org/安装步骤:1.sudo apt-get install python-pip python-dev python-virtualenv 2.virtu ...