项目:我正在尝试为我的学校同学制作一个小型网站,他们可以在其中存储有关他们的基本信息。到目前为止已经实现了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 的部分是错误的。
此外,当用户第二次更改他的个人资料图片时,第一张图片将保留在文件中,如何在上传第二张图片时将其删除。
请帮助..整天都在寻找解决方案,这将是一个很大的帮助。