对于单点登录系统,当上传图片和文件时时出现 HTTP ERROR 302 错误, 这是服务端需要登录验证,而客户端uploadify 并没有把cookie中的 sessionId 发送给服务器 ,如果有拦截或过滤的话,请求就会被重置,这样就会出现302错误了。
对于这类问题处理;
js代码:
function getSessionId(){
var c_name = 'JSESSIONID';
if(document.cookie.length>0){
c_start=document.cookie.indexOf(c_name + "=")
if(c_start!=-1){
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if(c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end));
}
}
}
jquery.uploadify.js文件中uploadify方法:
修改uploader的红色标记部分
'uploader' : '/incms/upload2/init.json
;jsessionid='+getSessionId()
uploader实例代码如下:
$('#uploadXls').uploadify({
'swf' : SWF,
'buttonText' : '浏览',
'width' : 50,
'height' : 20,
'fileSizeLimit' : '60MB',
'multi' : true,
'auto' : false,
'successTimeout':900,//服务器端返回的最大超时时间/秒
'method' : 'POST',
'queueSizeLimit' : 100,
'fileTypeDesc' : 'Upload Files',
'fileTypeExts' : '*.xls; *.xlsx',
'formData' : {'fileAmount':''},//'netType':'',
'uploadLimit' :15,
'uploader' : '/incms/upload2/init.json;jsessionid='+getSessionId(),
'onDialogClose': function(queueData){
fileAmount = queueData.filesQueued;
},
'onDialogOpen':function (){
$('#uploadXls').uploadify('cancel','*');
},
'onUploadStart' : function(file) {
$.messager.progress({title:'Please waiting',msg:'正在导入.....',text:''});
},
'onSelect' : function(file) {
if(!$("#uploadIsMac").val()){
$('#uploadXls').uploadify('cancel','*');
$('#upload_detail_dialog').dialog('close');
$.messager.alert(titleInfo,"请选择设备");
return;
}
},
'onCancel': function(file) {
fileAmount=fileAmount-1;
},
'onUploadSuccess' : function(file, data, response) {
//alert("PP:"+response);
if(response==false){
$.messager.progress('close');
$.messager.alert(titleInfo, '数据太大,请查看是否全部导入成功!');
$('#uploadXls').uploadify('cancel','*');
$('#upload_detail_table').datagrid('load');
$('#upload_detail_dialog').dialog('close');
}else{
var json = $.parseJSON(data);
var jsonData=json.data.msg;//返回信息
if(jsonData !=null && jsonData !=''){
if (json.data.code == 3) {
//选择的对应厂商没有数据
$.messager.progress('close');
$('#uploadXls').uploadify('cancel','*');
$('#upload_detail_table').datagrid('load');
$('#upload_detail_dialog').dialog('close');
$.messager.alert(titleInfo, json.data.msg);
}else if(json.data.code==2){
//部分导入成功
$.messager.progress('close');
$.messager.alert(titleInfo,json.data.offerMsg);
$('#uploadXls').uploadify('cancel','*');
$('#upload_detail_table').datagrid('load');
$('#upload_detail_dialog').dialog('close');
}
}else{
//不显示进度的100%
$.messager.progress({title:'Please waiting',msg:'正在导入.....',text:''});
}
}
},
'onAllComplete' : function(event,data) {
},
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
}
});
分享到:
相关推荐
Uploadify上传图片实列,总有用得上的时候,大家u客气,快下载吧!
主要为大家详细介绍了解决jQuery上传插件Uploadify出现Http Error 302错误的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
MVC4下对话框中使用Uploadify上传多个文件
前段时间介绍过jquery uploadify上传插件的使用方法,我在使用中遇到过Http Error 302错误问题,应该会有很多人在使用中遇到过,在此记录下来: 首先http 302是请求被重定向的意思,这就很容易理解了,如果你的...
uploadify 图片上传代码uploadify 图片上传代码uploadify 图片上传代码uploadify 图片上传代码uploadify 图片上传代码
NULL 博文链接:https://amandazzu.iteye.com/blog/1428775
thinkphp+uploadify上传实例
ff浏览器下 uploadify 利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个session,新的session无法通过登录验证,因此被重定向到了登录页面。 解决的方法无非就是将原session一起post到服务器...
HTML5 PHP jquery uploadify上传文件,带进度条,author:吕大豹。仿照uploadify写的,www.codesc.net已做过修正,本例的配置参数均与uploadify官网一致,参照官网的api就可以了,直接把文件夹上传到支持php的服务器...
uploadify上传之jsp
uploadify多文件上传Demo整理,客户端操作,后台异步提交
uploadify多文件上传例子代码,jsp+servlet实现
uploadify 上传大文件 http 404 错误解决方案
uploadify批量上传文件-
uploadify上传并且得到文件名,里面都有详细的代码。并且得到文件名的方法
uploadify 文件异步上传 实现qq邮箱异步上传 0积分
uploadify-h5上传插件,解决uploadify插件中需要下载flash的问题
使用uploadify控件批量上传文件实例,特效很不错!