uploadify火狐不能上传

原因:

uploadify是一个基于flash的上传文件的插件,由于,火狐浏览器在使用flash的post方法时,会生成新的session导致上传失败。

解决:

在页面加一个隐藏域,保存新session之前的sessionId。

HTML代码:

				<input type="hidden" id="sessionId" value="${pageContext.session.id}" />  			
				<div id="upDataArea">
				<div id="alertArea"></div>
				<form id="filecondition" class="s_span" method = "post" enctype = "multipart/form-data">
					<div id="attachfileQueue" style="width:500px;"></div>
					<input type="file" id="aa" name="file"/>
					<input id="upload" type="button" value="" οnclick="javascript:$('#aa').uploadify('upload', '*')"/>
					<input id="cancel" type="button" value="" οnclick="javascript:$('#aa').uploadify('cancel', '*')"/>
				</form>
				<button id="close" onclick = "closeUploadify()" ></button>
				<div id="some_file_queue"></div>
			</div>	

JavaScript代码:

			$("#aa").uploadify({
					'uploader':'<%=request.getContextPath()%>/requestAction!ajaxRequest.action?authority_id=080&sessionId='+$('#sessionId').val(),
					'swf': '<%=request.getContextPath()%>/common/js/uploadify/uploadify.swf',
					'queueID':'some_file_queue',
					'auto': false,
					'multi': true,
					'buttonText':'',					
					'removeTimeout':0.5,
					'width': 100,
					'fileObjName' : 'file',
					'fileTypeDesc'   : '支持格式:*.xml',  
                    'fileTypeExts'   : '*.xml', //控制可上传文件的扩展名,启用本项时需同时声明fileDesc  
					'onUploadSuccess' : function(file, data, response){	
						console.log(data);
						//response不能作为判断条件,无论成不成功都是true
						var v_result = eval("("+data+")");
						if(v_result.status == "success"){
							alert("上传文件成功");
							create();
							closeUploadify();
						}else{
							alert("Sorry,您上传的文件名称不规范 请遵循P_XXX_XXX_XXX.xml");	
						}
					},
					'onUploadStart': function(file) {
						$("#aa").uploadify("settings", 'formData', {'parameter': file.name});
					},
					'onFallback':function(){
						  //在初始化时检测不到浏览器有兼容性的flash版本时实触发
						  $("#alertArea").html("您没有安装flash!该功能不能使用!");
						//alert("您没有安装flash!"); 
					 }
				});

后端:

根据前端传过来的sessionId,拿到新会话之前的session信息,比如登录信息之类,绑定到action里,做验证等。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值