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

a imagem é um blob, então o que eu te disse esta correto, deixa eu ver o código agora.

Arquivo exibe.php

 

<?php
require 'conexao.php';
$resultado = mysql_query("select * from usuarios ");
while ($row = mysql_fetch_array($resultado)) {
$nome = $row['nome'];
$senha = $row['senha'];
echo '<img src="data:image/jpeg;base64,<?php echo base64_encode($img); ?>" />';
echo "$nome </br >";
echo "$senha </br >";
}
?>
Arquivo 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);
?>

 

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.

Coloquei mas continua igual

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for tentar a solução que o Vinicius deu você tem que fazer assim:

 

echo '<img src="data:image/jpeg;base64,' . base64_encode($row['foto']) . '" />';

 

 

O único inconveniente de usar dessa forma é que o HTML fica gigantesco. Porém, se formos falar de desempenho e melhores práticas o ideal seria salvar a imagem no filesystem e não no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for tentar a solução que o Vinicius deu você tem que fazer assim:

 

echo '<img src="data:image/jpeg;base64,' . base64_encode($row['foto']) . '" />';

 

 

O único inconveniente de usar dessa forma é que o HTML fica gigantesco. Porém, se formos falar de desempenho e melhores práticas o ideal seria salvar a imagem no filesystem e não no banco de dados.

Deu erro:

Parse error: syntax error, unexpected '.' in C:\xampp\htdocs\mysql\exibe.php on line 14

 

Entendo a questão de salvar em arquivos separados, mas estou tentando salvar no banco por motivos de aprendizagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O único inconveniente de usar dessa forma é que o HTML fica gigantesco. Porém, se formos falar de desempenho e melhores práticas o ideal seria salvar a imagem no filesystem e não no banco de dados.

A parte do HTML gigante acho irrelevante mas quanto ao resto do que você disse esta perfeito, no último projeto em andamento precisei salvar algumas imagens com blob só que eu não salvo uma foto maior que 100px por exemplo, pois eu sei que não é uma boa pratica.

 


 

echo "<img src='data:image/jpeg;base64,".base64_encode($row['foto']) ."' />";

esta com erro na concatenação, já que ele concatena com uma aspas simples e tenta utilizar ela de novo para chamar o valor do array do indice "foto".

 

assim deve corrigir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A parte do HTML gigante acho irrelevante mas quanto ao resto do que você disse esta perfeito, no último projeto em andamento precisei salvar algumas imagens com blob só que eu não salvo uma foto maior que 100px por exemplo, pois eu sei que não é uma boa pratica.

 


 

echo "<img src='data:image/jpeg;base64,".base64_encode($row['foto']) ."' />";

esta com erro na concatenação, já que ele concatena com uma aspas simples e tenta utilizar ela de novo para chamar o valor do array do indice "foto".

 

assim deve corrigir.

Finalmente deu certo...rs A imagem, usuario e senha apareceram. Obrigado a todos que ajudaram.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Vinicius! :clap:

 

Se não fosse você tentar algo diferente este tópico não ia acabar nunca. rs

 

Tava complicado para funcionar rs. Mas valeu Leozitho por perder um tempo pra ajudar. :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagina, precisando estamos aí. :)

 

Acabou que eu fiquei curioso em saber por que não deu certo a tentativa de renderizar a imagem num segundo arquivo. Tenho quase certeza que era problema de codificação.

 

Deixa eu aproveitar e fazer uma correção, eu falei em código binário mas na verdade eu estava me referindo ao código-fonte da imagem, não tem nada a ver com código binário. rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagina, precisando estamos aí. :)

 

Acabou que eu fiquei curioso em saber por que não deu certo a tentativa de renderizar a imagem num segundo arquivo. Tenho quase certeza que era problema de codificação.

 

Deixa eu aproveitar e fazer uma correção, eu falei em código binário mas na verdade eu estava me referindo ao código-fonte da imagem, não tem nada a ver com código binário. rs

 

Como assim o código fonte da imagem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aliás, código-fonte não é o termo mais correto pois está mais relacionado com código de programação, e código binário também não é porque binário só tem 0 ou 1, então vamos chamar de "source" da imagem. rs

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.