用户档案 - 文件系统中的Pic,C#

时间:2013-06-16 09:31:28

标签: c# asp.net sql webforms

项目:我正在为我的学校bddies建立一个小网站,在那里他们可以存储有关它们的基本信息。到目前为止已经实施了Scott Mitchell的方法。

问题:我想让用户存储他的个人资料照片。通过利用文件系统中的存储并将路径保存在数据库中来实现此目的。

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Upload" onclick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

C#:

protected void Button1_Click(object sender, EventArgs e)
{
    string virtualFolder = "~/UserPics/";
    string physicalFolder = Server.MapPath(virtualFolder);
    string fileName = Guid.NewGuid().ToString();
    string extension = System.IO.Path.GetExtension(FileUpload1.FileName);
    FileUpload1.SaveAs(System.IO.Path.Combine(physicalFolder, fileName + extension));
    String ImageUrl = virtualFolder + fileName + extension;

    Label1.Text = ImageUrl;


    MembershipUser currentUser = Membership.GetUser();
    Guid currentUserId = (Guid)currentUser.ProviderUserKey;


    string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    string updateSql = "UPDATE UserDetails SET UserPicUrl = ImageUrl WHERE UserId=@currentUserId";


    using (SqlConnection myConnection = new SqlConnection(connectionString))
    {
        myConnection.Open();
        SqlCommand myCommand = new SqlCommand(updateSql, myConnection);
        myCommand.Parameters.AddWithValue("@UserPicUrl", DBNull.Value);

        myCommand.ExecuteNonQuery();
        myConnection.Close();
    }
}

但是我无法这样做,我认为在db中插入ImageUrl的部分是错误的。

此外,第二次用户更改其个人资料照片时,第一张图片将保留在文件中,以便在上传第二张图片时将其删除。

请帮助..一整天都在寻找解决方案,这将是一个很好的帮助。

0 个答案:

没有答案