Olá, Pessoal.
Neste post vou explicar de forma rápida e fácil como ler uma imagem armazenada no banco de dados SQLSERVER, no formato varbinary e mostrar em uma pagina de web, utilizando c# MVC.
Dentro de Model tenho minha classe
public partial class LISTA_IMAGENS_BD_Result
{
public string IMG { get; set; }
public string TIPO{ get; set; }
public byte[] DADOS_IMG { get; set; }
}
Controller
public ActionResult Print(string protocolo, string cod)
{
List<LISTA_IMAGENS_BD_Result> lImg = new List<LISTA_IMAGENS_BD_Result>();
using (CIEntities ex = new CIEntities())
{
if (protocolo != null)
{
List<LISTA_IMAGENS_BD_Result> list = ex.LISTA_IMAGENS_BD(protocolo).ToList();
if (list != null && list.Count() > 0)
{
LISTA_IMAGENS_BD_Result img = null;
foreach (LISTA_IMAGENS_BD_Result item in list)
{
img = new LISTA_IMAGENS_BD_Result();
img.IMG = item.IMG ;
img.TIPO= item.TIPO;
img.DADOS_IMG= item.DADOS_IMG;
lImg.Add(img);
}
}
ViewBag.Imagens = lImg;
}
}
return View();
}
View
<div class="bloco_protocolo">
@foreach (mob156Imagens.Models.LISTA_IMAGENS_BD_Result item in ViewBag.Imagens)
{
<div class="bloco_proto_img">
<a href="data:image/jpeg;base64,@Convert.ToBase64String(item.DADOS_IMG.ToArray())" data-lightbox="roadtrip"><img src="data:image/jpeg;base64,@Convert.ToBase64String(item.DADOS_IMG.ToArray())" class="largura-cheia" alt="@item.IMG" title="@item.IMG" border="0" /></a>
</div>
}
</div>