0

项目:我正在尝试为我的学校同学制作一个小型网站,他们可以在其中存储有关他们的基本信息。到目前为止已经实现了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();
    }
}

但是我不能这样做,我认为在数据库中插入 ImageUrl 的部分是错误的。

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

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

4

0 回答 0