Ir para conteúdo

POWERED BY:

Arquivado

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

Renato Duarte

[Resolvido] Gravar caminho de imagem redimensionada com PHP

Recommended Posts

Olá colegas!

Aqui estou com mais uma dúvida cruel. Usei o script de redimensionamento de imagens disponibilizado pelo Beraldo (colaborador aqui do Imasters) e estou tentando adaptá-lo à minha necessidade. Com o código abaixo, a imagem é salva corretamente na pasta "up", mas quero que, além de salvar, o caminho da imagem também possa ser gravado no banco de dados.

 

Pensei em gravar a a variável $imagem_final no banco de dados, mas quando eu dou um echo $imagem_final; , é exibido apenas o número 1 (um).

 

Alguém dá uma luz, por favor.

 

$imagem_tela = imagecreatefromjpeg($imagem_original);
$imagem_destino = imagecreatetruecolor($largura_nova, $altura_nova);
imagecopyresampled($imagem_destino, $imagem_tela, 0, 0, 0, 0, $largura_nova, $altura_nova, $largura_imagem, $altura_imagem);
$imagem_final = imagejpeg($imagem_destino, "up/" . mt_rand() . ".jpg", 80);
if ($imagem_final):
 echo "OK";
else:
 echo "Erro!";
endif;

OBS: essa é a parte final do código. Desde já, grato pelas ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso aiii funciona beleza.... mais se ñ entender nada dá uma olhada Nesta video aula que tá ensinando a fazer Direitinho.....

 

 

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif >>>>MX MASTERS <<<<<<< http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

index.php

 

<?php
      if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
         $foto = $_FILES['foto'];
         if($foto['type'] == 'image/jpeg'){
            require("funcao/funcao_upload.php");
            $name = md5(uniqid(rand(), true)).".jpg";            
            Redimensionar($foto, $name, 150, "images");
         }   
      }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Redimensionar Imagem</title>
</head>

<body>
<form method="post" action="" enctype="multipart/form-data">
   <label>Foto<input type="file" name="foto" /></label>
    <input type="submit" value="Enviar" />
    <input type="hidden" name="acao" value="cadastrar" />
</form>

</body>
</html>

 

funcao_upload.php

<?php
      function Redimensionar($imagem, $name, $largura, $pasta){
            $img = imagecreatefromjpeg($imagem['tmp_name']);
            $x   = imagesx($img);
            $y   = imagesy($img);
            $altura = ($largura * $y)/$x;
            $nova = imagecreatetruecolor($largura, $altura);
            imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
            imagejpeg($nova, "$pasta/$name");
            imagedestroy($img);
            imagedestroy($nova);
            return $name;
      }
   
?>

Caso você tente usar na sua hospedagem, é necessário dá permissão de escrita na pasta onde será enviada a imagem.

 

Aqui está como listar a imagem.

listarimagens.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listar Imagens</title>
</head>

<body>
<?php
    /*nome da pasta onde está as imagens*/    
      $pasta = "images";
       /*recuperar as imagens e colocar em um array*/
   $imagens = glob("$pasta/{*jpg,*png,*gif}", GLOB_BRACE);
       /*percorre o array*/
        foreach($imagens as $img){
   /*Imprime a imagem*/   
          echo '<img src="'.$img.'" />';
   }
?>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta parte

"up/" . mt_rand() . ".jpg"
É o nome da imagem, onde up/ é o nome da pasta.

 

Carlos Eduardo,

Está quase ok, mas como eu fiz está aparecendo um erro. Fiz assim:

 

$aleatorio = mt_rand(); // acrescentei essa variável
$imagem_final = imagejpeg($imagem_destino, "up/" . $aleatorio . ".jpg", 80);
 if ($imagem_final):
 	echo "OK";
	$caminho = $imagem_destino . "up/" . $aleatorio . ".jpg";
	echo $caminho; //ao mostrar o caminho, aparece corretamente, mas antes aparece esse erro: Resource id #5up/784756280.jpg
else:
 	echo "Erro!";
endif;

O erro é o Resource id #5 antes da string com o caminho a ser gravado: up/784756280.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso aiii funciona beleza.... mais se ñ entender nada dá uma olhada Nesta video aula que tá ensinando a fazer Direitinho.....

 

macielcr7,

Obrigado pelo código. Vou dar uma estudada nele. Antes, pretendo ver se funciona esse que já adaptei em parte.

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem acredito que eu estava fazendo isso... rsrsr s

 

O

 

"up/" . $aleatorio . ".jpg"

já é o nome da imagem redimensionada. Nem precisa eu usar o $imagem_destino.

 

Prontinho! Assunto encerrado.

Muito obrigado Matias Resende. Obrigado também Maciel. Sucesso a vocês.

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.