Pegar Imagem(campo Blob) - Consulta formato livre

Bom Dia ,

Estou com um problema ao tentar exibir uma imagem que vem do banco de dados e jogar em uma consulta (formato livre) .

Vi varios topicos aqui no forum com problemas parecidos porem tentei o que havia sendo citado como solução , mas o mesmo não resolveu =/ .

Se alguem tiver alguma luz de como eu posso resolver eu agradeço !

Fiz da seguinte forma :

$sq_aut = " SELECT NNUMETITU , LOGO FROM TIULP.TB_AUTO_GESTAO_SENHA WHERE NNUMETITU = ".{rs_cont[0][0]};
sc_lookup(rs_aut,$sq_aut);

if(!empty({rs_aut[0][0]})){

$varImg=base64_encode("'".{rs_aut[0][1]}."'");    

{p_logo} =  "<img border=0 width='74px' height='50px' src='data:image/png;base64,$varImg'>";

}

Este campo {p_logo} associo ao meu campo do formato livre :

image

Ao executar a consulta é exibido da seguinte forma , e ao inspecionar elemento assim :

image

Alguem poderia por favor me dar um auxilio no que poderia ser ? Já pesquisei e não estou encontrando solução para isso :cry:

Agradeço desde já.

Olá Daiane.

Faça o seguinte: Altere o formato livre HTML de campo para uma global: Ex: [glo_logo].

$glo_logo = <mg border=0 width=‘74px’ height=‘50px’ src='data:image/png;base64,$varImg
sc_set_global($glo_logo);

No seu HTML use assim: [glo_logo].

2 Curtidas

Bom Dia Paulo,

Fiz o que você me disse porém ainda não deu certo :sweat:

Alterei meu codigo para :

E no meu html , estou buscando da variavel global :

image

Mas o problema ainda ocorre .

@daiane_galvao tem certeza que o campo está como blob mesmo? Estranho pq esse código ai funciona aqui pra mim.

acho que o SC coloca uns caracteres no inicio do arquivo ao salvar no banco a imagem.

Sim Thyago … o campo é blob.

1 Curtida

Haroldo o que isso quer dizer ? E tem alguma solução ?

1 Curtida

remover esse caractere antes de converter o blob em variável.

Edite o campo no banco de dados e veja se tem caracteres do tipo nm.

Não há esses caracteres no campo . :expressionless:

Troca seu código por este corrigido:

$_NNUMETITU={rs_cont[0][0]}; // Verificar se esta variável esta correta.

$sql="
SELECT
	LOGO
FROM
	TB_AUTO_GESTAO_SENHA
WHERE
	NNUMETITU = $_NNUMETITU
";

sc_lookup(chk_img, $sql);

if (isset({chk_img[0][0]})) {
    $_Imagem=base64_encode({chk_img[0][0]});
    {p_logo} = "<img border=0 height='50px' width='74px' src='data:image/jpeg;base64,$_Imagem'>";
} else {
    {p_logo} = 'Sem Imagem';
}
1 Curtida

Qual evento vc lê a base para pegar a imagem?

Bom Dia Haroldo…

Eu ja tentei no onRecord… no OnInit e nao deu certo…

Agora tentei gravar no banco em base64 …e depois utilizar o metodo base64_decode do php… mas nao deu certo :unamused: :expressionless:

Boa tarde topico antigo mais precisei hoje e não encontrei aqui de como mostra imagem base64 em formulario consulta no formato livre !

Conseguir resolver de forma simples assim:
Crie um Aplicação Blank para pegar a imagem base64

$check_sql = “SELECT logomarca”
. " FROM tblogo" ;
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})) // Row found
{
$varImg=base64_encode({rs[0][0]});

header(“content-type: image/jpeg”);
echo base64_decode($varImg);

};
// fim mostra imagem base64
Agora no seu formulario formato livre faço seguinte no onRecord:
Campo {logo} coloquei como ImagemHTML

{logo} = "<img border=0 height='64px' width='320px' src='../imageView/imageView.php'>"    

e prontinho pessoal pra mim assim deu certo espero que ajude alguém !

<img src="data:image/png;base64,$varImg" >

Isso em campo consulta do formato livre Text ou ImagemHtml não funciona !

campo texto coo vc apresenta no tópico inicial.