Ir para conteúdo
Fórum Script Brasil
  • 0

Thumbnail a partir do form


Anderson Gouveia

Pergunta

Olá!

Pessoal, encontrei milhares de códigos para geração de thumbnail na net, 99,9% criavam thumbs a partir de um arquivo ou diretório.

Minha necessidade é um pouco diferente.

Tenho um form de cadastro onde serão "upados" alguns dados e uma foto que será salva em campo BLOB.

Em outra página preciso exibir os thumbs das fotos que estão na tabela, com link para a foto original.

Ao invés de gerar os thumbs toda vez que a página for carregada e sobrecarreguar o server, eu gostaria de gerar o thumb no upload e salvá-lo em um segundo BLOB.

Segue o código.

Preparação da foto original para ser gravada no BD:

if (isset($_FILES[foto]) && $_FILES[foto][size] > 0) {   //Verifica se há arquivo upload
$tmpname = $_FILES[foto][tmp_name];     // Pega nome temp. no server
$tipofoto = $_FILES[foto][type];   // Pega extensão da foto

//PREPARA FOTO PARA SER GRAVADA NO DB
$fp = fopen($tmpname, 'r');
$foto = fread($fp, filesize($tmpname));
$foto = addslashes($foto);
fclose($fp);
Essa parte está funcionando. Consigo gravar no BD e exibir depois. O problema vem agora Gerar o thumb e salvar no BD:
$im = imagecreatefromstring($foto);
$widthim = imagesx($im);
$heightim = imagesy($im);
$thumbw = 80;
$thumh = $heightim / $widthim * $thumbw;
$thumb = imagecreatetruecolor($thumbw, $thumbh);
imagecopyresized($thumb,$im,0,0,0,0,$thumbw,$thumbh,$widthim,$heightim);
$out = imagejpeg($thumb);
Peguei esse código na net, mas não está funcionando. Quando dou :
$escreve = "insert into produtos(sub, produto, descricao, preço, foto, tipofoto, estoque, thumb)
values('$sub', '$produto', '$descricao', '$preço', '$foto', '$tipofoto', '$estoque', '$out')";
mysql_query($escreve) or die (mysql_error());
Não aparece nenhum erro, mas no phpmyadmim, quando consulto a tabela, o campo do thumb fica "[bLOB - 0 Bytes]" Se mando exibir o thumb com o comando:
header('Content-type: image/jpg');
echo $out;

Aparece aquele quadradinho com um X vermelho no meio.

Já tentei usar o addslashes($out) antes de gravar no BD e também não funcionou.

Desde já agradeço a atenção.

Abraços!

Editado por Anderson Gouveia
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Só curiosidade... Tu não estás usando addslashes antes de começar a trabalhar com a criação da imagem, não é?

Link para o comentário
Compartilhar em outros sites

  • 0
Só curiosidade... Tu não estás usando addslashes antes de começar a trabalhar com a criação da imagem, não é?

Wanderson,

Na verdade eu já tentei com e sem o addslashes antes, mas em nenhuma das tentativas deu certo.

Tentei:

$foto = fread($fp, filesize($tmpname));

$im = imagecreatefromstring($foto);

Não deu certo. Depois tentei:

$foto = fread($fp, filesize($tmpname));

$foto = addslashes($foto);

$im = imagecreatefromstring($foto);

Mas continuou na mesma.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Tipo eu não sei se essa fromstring vai funcionar... Tenta fazer um wrapper pra imagem; tipo: se é um jpg tu cria um imagecreatefromjpeg; se for um gif tu cria um imagecreatefromgif e assim vai...

http://br.php.net/manual/pt_BR/function.im...atefromjpeg.php

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...