Check this sample
    <asp:FileUpload ID="FileUpload1" runat="server" />
    <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick = "Upload" />
    <hr />
    <asp:Panel ID = "Panel1" runat = "server" Visible = "false" >
        <asp:Image ID="Image1" runat="server"/>
        <br />
        <asp:Button ID="btnSave" runat="server" Text="Save" OnClick = "Save" />
        <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick = "Cancel" />
    </asp:Panel>
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["Image"] = null;
        }
    }
    protected void Upload(object sender, EventArgs e)
    {
        Session["Image"] = FileUpload1.PostedFile;
        Stream fs = FileUpload1.PostedFile.InputStream;
        BinaryReader br = new BinaryReader(fs);
        byte[] bytes = br.ReadBytes((Int32)fs.Length);
        string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
        Image1.ImageUrl = "data:image/png;base64," + base64String;
        Panel1.Visible = true;
    }
    protected void Save(object sender, EventArgs e)
    {
        HttpPostedFile postedFile = (HttpPostedFile)Session["Image"];
        postedFile.SaveAs(Server.MapPath("~/Uploads/") + Path.GetFileName(postedFile.FileName));
        Response.Redirect(Request.Url.AbsoluteUri);
    }
    protected void Cancel(object sender, EventArgs e)
    {
        Response.Redirect(Request.Url.AbsoluteUri);
    }