uploadify 3.2 java应用丢失session

flash中有个bug就是自身创建一个session,这样就导致与web本身的session不一致 权限验证失败的问题。 



原因:



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



解决方法:

 'uploader' : '${ctx}/testFu;jsessionid=${pageContext.session.id}',

'uploader' :  baseUrl + '/product/sale/importEmployees;jsessionid=<%=session.getId() %>',



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



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



还有一种解决方法是:



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

Js代码  uploadify 3.2 java应用丢失session
  1. 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
上一篇:android NDK开发环境搭建


下一篇:Java内置包装类