java应用uploadify 3.2丢失session

在使用jQuery uploadify插件进行文件上传时,遇到Java应用中session丢失的问题。设置uploadify的uploader参数为'uploadFile.action;jsessionid=<%=session.getId()%>',确保携带session ID,但仍然存在问题。分析了SWFUpload的completeURL方法对上传地址和按钮图片URL的影响,讨论了解决方案。
摘要由CSDN通过智能技术生成
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类);

解决方法:

Java代码   收藏代码
  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.             }  
  18.     });  




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

jquery.uploadify.min.js(我用的版本是3.2)原来的代码:
Js代码   收藏代码
  1. this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url)  


替换为:

Js代码   收藏代码
  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  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值