uploadify火狐不能上传

来源:互联网 发布:手机hifi音效软件 编辑:程序博客网 时间:2024/06/04 14:33

原因:

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="" onclick="javascript:$('#aa').uploadify('upload', '*')"/><input id="cancel" type="button" value="" onclick="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不能作为判断条件,无论成不成功都是truevar 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里,做验证等。


阅读全文
0 0
原创粉丝点击