项目:我正在为我的学校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的部分是错误的。
此外,第二次用户更改其个人资料照片时,第一张图片将保留在文件中,以便在上传第二张图片时将其删除。
请帮助..一整天都在寻找解决方案,这将是一个很好的帮助。