Ir para conteúdo

POWERED BY:

Arquivado

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

Neto Gerbi

converter binarios trazidos do bd

Recommended Posts

$vinculo = mysql_connect("localhost","root","*****") or die("Impossivel Conectar: ".mysql_error());
	mysql_select_db("arquivo",$vinculo) or die("Impossivel localizar base de dados: ".mysql_error());
	
	$q="SELECT * FROM FOTOS";
	$result = mysql_query($q);
	$r=mysql_result($result,0,'foto');
	echo $r;

estou tentando mostrar uma imagem que vem do bd com o codigo acima, mas só aparece o codigo binario da foto...

 

copmo faço pra converter?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa! Q código doido.

 

Faz assim:

 

$query = "SELECT * FROM fotos";
$result = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_array($result);

echo $row['aqui vem o nome da coluna que tá a foto'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

	$vinculo = mysql_connect("localhost","root","lywe987") or die("Impossivel Conectar: ".mysql_error());
	mysql_select_db("arquivo",$vinculo) or die("Impossivel localizar base de dados: ".mysql_error());
	
	$q="SELECT * FROM FOTOS";
	$result = mysql_query($q);
	$r=mysql_result($result,0,'foto');
	echo sizeof($r);
	echo "<br/>";
	echo fread($r, filesize($r));
tentei fazer dessa forma e saiu isso:

 

1
Warning: filesize() [function.filesize]: stat failed for )Exif in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testes\download.php on line 18

Warning: fread(): supplied argument is not a valid stream resource in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testes\download.php on line 18

alguem ai pode me dar uma dica do que ta acontecendo!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa! Q código doido.

 

Faz assim:

 

$query = "SELECT * FROM fotos";
$result = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_array($result);

echo $row['aqui vem o nome da coluna que tá a foto'];

creio que seja a mesma coisa.. só estou pegando o resultado do select de forma diferente, mas tentei assim e saiu o codigo binario da foto impresso na tela tbm!!!

 

eu imagino que como usei o comando fread(...) para ler a foto em binario para jogar no banco deve ter alguma forma de converter o codigo binario salvo num campo longblob em imagem denovo!

 

alguem sabe como fazer?@!?@?@

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dados contidos na base de dados serão interpretados como string

 

para exibir a imagem você deve imprimir o resultado sob o cabeçalho específico do conteúdo;

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dados contidos na base de dados serão interpretados como string

 

para exibir a imagem você deve imprimir o resultado sob o cabeçalho específico do conteúdo;

 

a sim... vi algo do tipo... mas nao sei como se faz... nao entendo como funciona o cabeçalho!

você poderia dar um exemplo de como eu deveria imprimir sob o cabeçalho neste caso?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente você precisa saber qual o content-type desse conteúdo

 

é uma imagem, certo ?

 

que tipo de imagem ?

 

gif, jpg, jpeg, bmp, tif, png ?

 

precisa saber o content-type e não somente o "tipo"

por exemplo,

 

arquivos do tipo GIF possuem content-type "image/gif"

 

JPG -> "image/jpg", mas existem variações:

"image/jpeg"

"image/x-jpg"

 

 

 

entendeu?

 

informe aqui qual o content-type

Compartilhar este post


Link para o post
Compartilhar em outros sites

image/pjpeg

 

coloquei no header como dito para fazer e continua o codigo binario na tela

 header('content-type:image/pjpeg');

Certo...

 

1. O cabeçalho é especificado capitalizado, e logo após os dois pontos (:) existe um espaço, assim:

header( 'Content-Type: image/pjpeg' );

 

Agora, eu não tenho certeza quanto ao Internet Explorer, mas veja se as novas versões do Firefox suportam streaming de jpeg.

 

De qualquer forma, seu código todo ficaria alguma coisa assim:

<?php
$errno = 0;
$error = null;
$image = null;

if ( ( $conn = mysql_connect( 'localhost' , 'user' , 'pswd' ) ) !== false ){
if ( mysql_select_db( 'arquivo' , $conn ) ){
if ( ( $res = mysql_query( 'SELECT `foto` FROM `fotos` LIMIT 1;' ) ) !== false ){
$row = mysql_fetch_array( $res , MYSQL_ASSOC );

if ( $row ) $image = $row[ 'image' ];
else {
$errno = 1;
$error = 'Nenhuma imagem não encontrada';
}

mysql_free_result( $res ); //Sempre libere os resultados das consultas
} elseif ( ( $errno = mysql_errno() ) != 0 ){
$error = 'Falha na consulta: ' . mysql_error();
}
} else {
$error = 'Impossível localizar base de dados: ' . mysql_error();
$errno = mysql_errno();
}

mysql_close( $conn ); //Sempre feche a conexão após utilizar
} else {
$error = 'Impossível conectar: ' . mysql_error();
$errno = mysql_errno();
}

if ( $image ){
//Verificamos se o conteúdo do banco de dados é realmente uma imagem.
if ( ( $img = @imagecreatefromstring( $image ) ) !== false ){
imageinterlace( $img , true ); //Necessário para o jpeg progressivo

header( 'Content-Type: image/pjpeg' , true , 200 );
imagejpeg( $img );
imagedestroy( $img );
} else {
$errno = 1;
$error = 'Conteúdo da imagem inválido';
}
}

if ( $errno ) die( $error );

 

 

Tente executar esse código, caso alguma mensagem de erro apareça você deve colocá-la aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterando $row[ 'image' ] por $row[ 'foto' ] nao houve erros, mas nao saiu nada na tela... e quando puxei o codigo html da pagina saiu o seguinte:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>

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.