如果我只上传新图像而不是存储图像,则存储空值 我想将相同的二进制图像数据重写到数据库,如果我没有上传任何图像,任何人都可以帮助我
以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);
}