java应用jquery uploadify 3.2 丢失session

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

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

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

解决方法:

$("#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("上传完毕!");							 
			}
});


你可能感兴趣的:(java应用jquery uploadify 3.2 丢失session)