Sou novato na lista e no php, estou tentando recuperar uma imagem (no formato hexadecimal) do banco de dados(MS SQL-Server 2000).
Em meus testes percebi que imagens com tamanho até 31 kbytes são exibidas na integra, ao contrário das imagens com tamanho superior a 31 kbytes que aparecerem parciamente na tela.
Alguém já passou por isto e tem uma dica para me dar?
Segue abaixo o código editado:
<?php
ob_start();
function setImagemBD($imagem, $idNegocio="") {
$bd = new BancoDados();
$status;
if(empty($imagem)) {
echo "<b>O nome ou o caminho da imagem não é válido!!</b>";
$status = false;
}
else {
$handle = fopen($imagem, "rb");//abre em modo binário
$conteudo = bin2hex(fread($handle, filesize($imagem)));
fclose($handle);
$query = " INSERT INTO TB_IMAGEM1 (Imagem, ImagemId) VALUES ('$conteudo', 1)";//1 fixo só para teste
$bd->SqlExecuteQuery($query);
$bd->SqlDisconnect();
}
}
function getImagemBD($idImagem="") {
header("Content-Type: image/jpg");
$bd = new BancoDados();
$query = "select imagem from TB_IMAGEM where ImagemID = $idImagem ";
$bd->SqlExecuteQuery($query);
echo hex2bin($bd->SqlQueryShow(1));
}
function hex2bin ($RawInput)
{
$BinStr = '';
for ($i = 0; $i < strlen ($RawInput); $i += 2){
$BinStr .= '%'.substr ($RawInput, $i, 2);
}
return rawurldecode ($BinStr);
}
setImagemBD("2007403.jpg");//incluir a imagem
getImagemBD("1");//recupera a imagem
?>
Pergunta
Ricardo Spinoza
Pessoal,
Sou novato na lista e no php, estou tentando recuperar uma imagem (no formato hexadecimal) do banco de dados(MS SQL-Server 2000).
Em meus testes percebi que imagens com tamanho até 31 kbytes são exibidas na integra, ao contrário das imagens com tamanho superior a 31 kbytes que aparecerem parciamente na tela.
Alguém já passou por isto e tem uma dica para me dar?
Segue abaixo o código editado:
[]s
Ricardo Spinoza
Editado por Ricardo SpinozaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.