Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

M@rc

Exibir imagem do banco

Recommended Posts

Comentei a linha que vc falou e acessei http://localhost/mysql/exibe2.php

Deu a msg:

 

Notice: Undefined index: id_usuario in C:\xampp\htdocs\mysql\exibe2.php on line 11

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in C:\xampp\htdocs\mysql\exibe2.php on line 14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa, eu tinha te falado pra você usar a função base64_decode caso tivesse convertendo em base64 antes de salvar no banco, mas o tipo do campo na sua tabela é BLOB, então é bem provável que você esteja salvando a imagem direto mesmo. Então se você colocou a função base64_decode tire, use a primeira versão de código que eu passei:

exibe2.php

<?php
 
require 'conexao.php';
 
$id_usuario = (int) $_GET['id_usuario'];
$sql = 'SELECT foto FROM usuarios WHERE id_usuario = ' . $id_usuario;
$query = mysql_query($sql) or die(mysql_error());
$foto = mysql_result($query, 0);
 
header('Content-Type: image/jpeg');
echo $foto;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo print que você mandou da pra ver que está com algum problema na codificação, está cheio de ponto de interrogação no código.

Tente fazer o seguinte:

echo utf8_encode($foto);


Se não resolver faça o contrário:

echo utf8_decode($foto);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a imagem aparece com o caracter pode ser que foi inserido um BLOB no banco de dados, que é simplesmente o array de bite da imagem.

 

Se esse for o caso você precisa exibir a imagem da seguinte maneira:

 


<img src="data:image/jpeg;base64,<?php echo base64_encode($img); ?>" />

é sempre bom colocar o formato correto da imagem. no caso esta jpeg mas se for png ou jpg é bom colocar apesar de funcionar de qualquer jeito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na primeira opção as interrogações deram lugar a outros caracteres e na segunda apareceram mais interrogações ainda rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a imagem aparece com o caracter pode ser que foi inserido um BLOB no banco de dados, que é simplesmente o array de bite da imagem.

 

Se esse for o caso você precisa exibir a imagem da seguinte maneira:

 


<img src="data:image/jpeg;base64,<?php echo base64_encode($img); ?>" />

é sempre bom colocar o formato correto da imagem. no caso esta jpeg mas se for png ou jpg é bom colocar apesar de funcionar de qualquer jeito.

 

Não deu certo

 

Você tem que testar com o "header" descomentado pra ver se a imagem é exibida.

Testei com o header comentado e descomentado e nada da imagem aparecer. Quando descomento aparece apenas o quadradinho de erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava vendo uns scripts meus que geram imagem dinamicamente e lembrei de uma coisa, em alguns navegadores, se eu não me engano no Chrome, pra gerar a imagem você precisa colocar o tamanho, se não o arquivo fica carregando eternamente.

 

Faça o seguinte, coloque mais esta linha abaixo do "header" que já existe:

 

header('Content-Length: ' . strlen($foto));

 

Só isso eu acho que não vai resolver o problema, pois já deveria exibir a imagem mesmo que o arquivo continuasse carregando, mas vai evitar este problema futuramente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.