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();
    }
}

しかし、私はそうすることができません.dbにImageUrlを挿入する部分が間違っていると思います。

さらに、ユーザーがプロファイルの写真を 2 回目に変更すると、最初の画像がファイルに残り、2 番目の画像がアップロードされたときにそれを削除する方法が表示されます。

助けてください..解決策を一日中探していて、大きな助けになるでしょう。

4

0 に答える 0