uploadify上传用的是一个flash插件,flash中有个bug就是自身创建一个session,这样就导致与web本身的session不一致 权限验证失败的问题。
因为uploadify是不会自动传送session值的,所以当session被拦截后,它的请求是发不出去的(补充,还有一种情况就是uploaddify是使用flash来处理文件文件上传,而在在非IE浏览器(Firefox,Chrome)下使用flash方式向服务器发起请求,是会新生成一个session的(此时旧的session则丢失了),如果要避免这个问题,需要把当前的sessionId作为形参传给处理类);
$("#image").uploadify({
swf: 'uploadify/uploadify.swf',// 上传使用的 Flash
uploader: 'upload;jsessionid=${pageContext.session.id}?type=1', // 服务器端处理地址
width: 60, // 按钮的宽度
height: 23, // 按钮的高度
buttonText: "选择图片", // 按钮上的文字
buttonCursor: 'pointer', // 按钮的鼠标图标
fileObjName: 'Filedata', // 上传参数名称
// 两个配套使用
fileTypeExts: "*.jpg;*.png;*.bmp;*.jpeg;*.gif", // 扩展名
fileTypeDesc: "请选择文件", // 文件说明
auto: true, // 选择之后,自动开始上传
multi: false, // 是否支持同时上传多个文件
debug: true,
fileSizeLimit: 2*1024,
removeCompleted: false, //是否移除掉队列中已经完成上传的文件。false为不移除
queueSizeLimit: 1, // 允许多文件上传的时候,同时上传文件的个数
/* onUploadSuccess : function(data){
//alert(data);
} */
});
注意:jsessionid前面用';' 不是'?'