出现的问题:
在应用uploadify插件实现上传图片时,报了HTTP Error,经过在Network查看上传方法报错码是302,那这里就可以知道问题是什么了,HTTP 302是请求被重定向,如果你的uploadify处理上传方法有session验证,就可能出现此错误,uploadify中的flash调用的时候未保存用户的session,插件就会报302错误。
处理思路:
简而言之,第一次加载页面的时候,session_userid和session_adminId是有的,经过浏览上传后,session_userid和session_adminId为null了,所以第一次加载页面后可以把session_userid和session_adminId带到前端上传参数中,后面再加载时通过UserId和AdminId在后端获取到值,再处理绑定。
前端处理:
function up() {
if ($("#fileQueue").children().length == 0) {
TiS("请选择图片", "tub1", "tub2");
return;
}
$("#loading1").show();
//自定义传递参数
$('#uploadify').uploadifySettings('scriptData', { 'goodsId': '<%=product.Rows[0]["GoodsId"] %>', 'UserId': '<%=session_userid %>', 'AdminId': '<%=session_adminId %>' });
//上传开始
$('#uploadify').uploadifyUpload();
}
后端处理:
public string UserId = "";
public string AdminId = "";
public string session_userid = "";
public string session_adminId = "";
protected void Page_Load(object sender, EventArgs e)
{
if (System.Web.HttpContext.Current.Session["UserId"] != null)
{
//加载页面时得到,点击上传再次加载可能丢失
session_userid = System.Web.HttpContext.Current.Session["UserId"].ToString();
session_adminId = System.Web.HttpContext.Current.Session["AdminId"].ToString();
}
if (Request["UserId"] != null)
{
UserId = Request["UserId"].ToString();
AdminId = Request["AdminId"].ToString();
Session["UserId"] = UserId;
Session["AdminId"] = AdminId;
}
}