I am converting image from bytes by FromBase64String method in asp.net C#, but at that time it showing error i.e. System.FormatException: 'Invalid length for a Base-64 char array or string.' in web method.
Here is my code,
[WebMethod]
public static List<CustomerMortgageModel> GetProductList()
{
string constr = ConfigurationManager.ConnectionStrings["connection"].ConnectionString;
List<CustomerMortgageModel> customers = new List<CustomerMortgageModel>();
Service service = new Service();
using (SqlConnection con = new SqlConnection(constr))
{
string qrySelProductDetail = "select * from tbl_MortageDetail " + System.Environment.NewLine;
using (SqlCommand cmd = new SqlCommand(qrySelProductDetail, con))
{
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
// Setup image and get data stream together
System.Drawing.Image img;
System.IO.MemoryStream MS = new System.IO.MemoryStream();
string b64 = sdr["DesignImage"].ToString().Replace(" ", "+");
byte[] b;
// Converts the base64 encoded msg to image data
b = Convert.FromBase64String(b64);
MS = new System.IO.MemoryStream(b);
// creates image
img = System.Drawing.Image.FromStream(MS);
customers.Add(new CustomerMortgageModel
{
DesignImage = img
});
}
}
con.Close();
}
}
return customers;
}
BackEnd Code
<asp:GridView ID="gv_productdetail" runat="server" CssClass="display compact" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<img src="data:image/jpeg;base64,<%# Eval("DesignImage") %>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>