C# 解决uploadify插件上传时造成session丢失问题

发布于:2024-03-05 ⋅ 阅读:(60) ⋅ 点赞:(0)

出现的问题:
在应用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;
     } 
}
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到