我在页面1上有一个列表框和按钮,当我点击按钮时,页面2将在新标签页中打开。在第2页中,我将照片上传到文件夹并设置会话[“FileName”]值。我希望当我关闭页面2时,上传图像的名称将显示在列表框中。
注意:session [“FileName”] =已上传图片的名称。
有没有人有想法?请帮助我。
谢谢。
我的上传课程:
public void ProcessRequest(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
// get the applications path
string uploadPath = context.Server.MapPath(context.Request.ApplicationPath + "/Temp");
for (int j = 0; j <= context.Request.Files.Count - 1; j++)
{
// loop through all the uploaded files
// get the current file
HttpPostedFile uploadFile = context.Request.Files[j];
// if there was a file uploded
if (uploadFile.ContentLength > 0)
{
context.Session["FileName"] = context.Session["FileName"].ToString() + uploadFile.FileName+",";
uploadFile.SaveAs(Path.Combine(uploadPath, uploadFile.FileName));
}
}
}
// Used as a fix for a bug in mac flash player that makes the
// onComplete event not fire
HttpContext.Current.Response.Write(" ");
}
答案 0 :(得分:0)
Session是ASP.NET中的服务器对象。这意味着,当您在一个页面上创建会话时,只要Session对象未被删除或过期,您就可以在任何其他页面上使用它。
假设您在page1.aspx.cs上执行了此操作
Session["FileName"] = "file1";
然后您可以在page2.aspx.cs上访问它,如下所示:
if(Session["FileName"]!=null)
Label1.Text = (string)Session["FileName"]
这样,您只能在.aspx页面或Control派生类上访问Session变量。
如果要访问类库项目中的会话变量,请执行以下操作:
HttpContext.Current.Session["FileName"]
此外,您似乎已创建了自定义HttpModule
。
通知您HTTPModule不得处理在初始化会话状态之前发生的任何管道事件。
Read this了解更多关于如何以及何时访问HttpModule中的Session变量的信息