以二进制格式asp.net更新图像

时间:2017-07-24 10:40:47

标签: asp.net sql-server

如果我只上传新图像而不是存储图像,则存储空值 我想将相同的二进制图像数据重写到数据库,如果我没有上传任何图像,任何人都可以帮助我

以varbinary(max)数据类型格式存储的图像文件

我的代码是

ASPX:

 <asp:TemplateField HeaderText="Image">
                        <ItemTemplate>
                            <asp:Image ID="Image1" runat="server" Height="100px" Width="100px" ImageUrl='<%#"data:Image/jpg;base64,"+Convert.ToBase64String((byte[])Eval("Profile")) %>' />

                            <asp:HiddenField ID="imgurl" runat="server" Value='<%# Eval("Profile") %>' />
                        </ItemTemplate>
                        <EditItemTemplate>
                             <asp:HiddenField ID="hdProductPhoto" runat="server" Value='<%#"data:Image/jpg;base64,"+Convert.ToBase64String((byte[])Eval("Profile")) %>' />  
                            <asp:FileUpload ID="imgUpload" runat="server" /></td>
                        </EditItemTemplate>
                    </asp:TemplateField>

我的csharp代码是:

 if (fuPhoto.FileName == "")
       {

           //System.Web.UI.WebControls.Image images = (System.Web.UI.WebControls.Image)GridView1.Rows[e.RowIndex].FindControl("userImages");

           //ImageContent = (byte[])(new ImageConverter()).ConvertTo(images, typeof(byte[]));
         HiddenField hdProductPhoto = (HiddenField)GridView1.Rows[e.RowIndex].FindControl("hdProductPhoto");
         string imgvalue = hdProductPhoto.Value;


         Response.Write("<script>alert('" + hdProductPhoto.Value + "')</script>");


       }
       else
       {
           int length = fuPhoto.PostedFile.ContentLength;
             ImageContent = new byte[length];
           HttpPostedFile img = fuPhoto.PostedFile;
           img.InputStream.Read(ImageContent, 0, length);
   }

0 个答案:

没有答案