0

我在第 1 页上有一个列表框和按钮,当我单击该按钮时,第 2 页将在新选项卡中打开。在第 2 页中,我将照片上传到文件夹并设置 session["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(" ");
}
4

1 回答 1

0

Session 是 ASP.NET 中的服务器对象。这意味着,当您在一个页面上创建 Session 时,您可以在任何其他页面上使用它,只要 Session 对象没有被删除或过期。

假设您在 page1.aspx.cs 上执行此操作

Session["FileName"] = "file1";

然后您可以像这样在 page2.aspx.cs 上访问它:

if(Session["FileName"]!=null)
    Label1.Text = (string)Session["FileName"]

因此,您只能在 .aspx 页面或 Control 派生类上访问 Session 变量。

如果要访问类库项目中的 Session 变量,请执行以下操作:

HttpContext.Current.Session["FileName"]

此外,您似乎已经创建了一个 Custom HttpModule

通知您的 HTTPModule 不得处理在会话状态初始化之前发生的任何管道事件。

阅读本文以了解有关如何以及何时访问 HttpModule 中的 Session 变量的更多信息

于 2013-04-20T09:43:07.150 回答