Java解决火狐浏览器使用uploadify上传报错302以及报IO error错问题

最近使用同时添加的上传控件uploadify,可以支持批量上传,但是控件是用Flash做的,在IE、360浏览器还好,但是在火狐浏览器出现了上传报错Http error 302,网上查询到是因为由于jquery uploadify是借助flash来实现上传的,每一次向后台发送数据流请求时,ie会自动把本地cookie存储捆绑在一起发送给服务器。但 firefox、chrome不会这样做,他们会认为这样不安全。在火狐浏览器下 uploadify 利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个session,新的session无法通过登录验证,因此就会报错302。

网上说的解决办法是在uploader属性后面将session追加进去

;jsessionid=<%=session.getId()%>
,代码如下:

<input id="testFileInput" type="file" name="strFilePath"  uploaderOption="{swf:'${ctx}/static/styles/management/uploadify/scripts/uploadify.swf',
   uploader:'${ctx}/common/uploadFile;jsessionid=<%=session.getId()%>',
   formData:{id:'${task.id}', ajax:1},
   queueID:'fileQueue',
   buttonImage:'${ctx}/static/styles/management/uploadify/img/add.jpg',
   buttonClass:'my-uploadify-button',
   width:102,
   auto:true,
   removeCompleted:false
  }"/>

但是我这样试过了还是解决不了问题,依然报错302.当时很是郁闷。

然后我还了一种思路,将session的值保存在页面中,然后在JavaScript中直接获取,这样一试,就成功了。

具体做法,我在导航栏总页面进行session的保存,

<input id="sessionId" type="hidden" value="${pageContext.session.id}"/>

然后在JavaScript中将其值获取

/**
 * 上传图片公共方法
 * @param fileID 上传文件按钮的ID值
 * @param imgID 上传后图片预览img的ID值
 * @param nameValue uploadfile中bean属性的ID值,用于传入后台
 * @param divShowId 之前隐藏的DIV用于显示图片的将其展示出来
 */
function uploadFileUtil(fileID,imgID,nameValue,divShowId){
	$("#"+fileID).uploadify({
		height        : 20,
		swf           :basePath+'/page/js/uploadify/uploadify.swf',
		uploader      :basePath+'/admin/product/upload.do;jsessionid=' + sessionId,
		buttonText:"选择文件",
		width         : 60,
		queueSizeLimit :1,
		'onUploadSuccess' : function(file, data, response) {
//			alert(data);
			var  mixed=data.split(",");
			var id=mixed[0];
			var  imgPath=mixed[1];
			$("#"+imgID).attr("src","/"+replaceImgURL(imgPath));
			/*    $(singlePicShow).append($("#singlePic")); */
			$("#"+nameValue).val(id);
			$("#" + divShowId).show();
			/* var img = $('#imgdiv1')
			img.attr('display:block') */
		}
	});
}

这样就不保错了,如果更改后出现上传报错IO error的话,将火狐浏览器关掉,清空缓存,然后再打开试试,应该就好了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值