0

我正在使用文件上传控制和.SaveAs方法将文件保存(上传)到 FTP 服务器。但是在第一次回发后会话值丢失。不知道为什么以及任何解决此问题的方法。

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["TheUser"] != null)
    {
        aUser = (clsUser)Session["TheUser"];
    }
}


protected void Button1_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)//continue only if the file control has the file
    {
        if (Get_and_Show_FileInformation())//if the file information was retrived and loaded into the textboxes
        {
            //continue with the execution
        }
        else
        {
            //error message displyed
        }
    }
}

protected bool Get_and_Show_FileInformation()
{
   if (FileUpload1.HasFile)
    {
        string fName = FileUpload1.PostedFile.FileName;
        string extension = Path.GetExtension(fName);
        string FileName = fName.Substring(0, fName.Length - extension.Length);
        string dir = uname;
        string appPath = Server.MapPath("Uploads/") + dir;
        FileInfo MyFileInfo = new FileInfo(appPath);
        DirectoryInfo newDirectoryInfo = new DirectoryInfo(appPath);
        if (!Directory.Exists(appPath))//if user is uploading to FTP_Upload first time, create a new directory for him/her
        {
            try
            {
                FileUpload1.SaveAs(Server.MapPath("~/Uploads/" + dir + "/" + FileName));  // ERROR here, call to this .SaveAs method causes loss of session values (Session["TheUser"])
                Image2.ImageUrl = "~/Uploads/" + dir + "/" + FileName;
                return true;
            }
            catch (Exception ex)
            {
                lbl_Err.Text = "<br/>Error: Error creating and saving into your space!(Error Code:XF05)";
                return false;
            }
        }
        else
        {
            //same code but don't create the directory
        }
    }
}
4

0 回答 0