Ir ao conteúdo

Posts recomendados

Postado

Oi, já coloquei aqui esse código, ele faz o upload da imagem, grava a foto na pasta e o caminho no banco de dados, porém eu queria ver se alguém consegue ver para mim se antes de fazer isso ele consiga redimensionar a imagem.Vi algumas soluções de GD, mas não sei como integrar.

<?php
// Conexão com o banco de dados
include "conexao.php";

// pegar a id do cliente na url (se existir)
$id_cliente = isset($_GET['id']) ? $_GET['id'] : null;
$fotoNova = null;

// se algo for postado, e existir a id do cliente
if (sizeof($_POST) && $id_cliente) {

   $foto = $_FILES['foto'];
   // Se a foto estiver sido selecionada
   if (!empty($foto['name'])) {

      // Largura máxima em pixels
      $largura = 700;
      // Altura máxima em pixels
      $altura = 1000;
      // Tamanho máximo do arquivo em bytes
      $tamanho = 1000;

      // Verifica se o arquivo é uma imagem
      if (preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto['type'])) {
         $error[1] = "Isso não é uma imagem.";
      }

      // Pega as dimensões da imagem
      $dimensoes = getimagesize($foto['tmp_name']);

      // Verifica se a largura da imagem é maior que a largura permitida
      if ($dimensoes[0] > $largura) {
         $error[2] = "A largura da imagem não deve ultrapassar " . $largura . " pixels";
      }

      // Verifica se a altura da imagem é maior que a altura permitida
      if ($dimensoes[1] > $altura) {
         $error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels";
      } {

         // Pega extensão da imagem
         preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto['name'], $ext);

         // Gera um nome único para a imagem
         $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

         // Caminho de onde ficará a imagem
         $caminho_imagem = "fotos/" . $nome_imagem;
		 
		 // Tentando apagar a foto anterior da pasta
		 unlink("fotos/".$nome_imagem->foto."");

         // Faz o upload da imagem para seu respectivo caminho
         move_uploaded_file($foto['tmp_name'], $caminho_imagem);
      }
   }
     
$result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente =". intval($id_cliente));
$obj = $result->fetch_object();
$path =  'fotos/'. $obj->foto;
   
// atualiza os dados no banco
$sql = $sqli->query("UPDATE clientes SET foto = '{$nome_imagem}' WHERE id_cliente =". intval($id_cliente));
// Se os dados forem inseridos com sucesso

 
   if ($sqli->error) {
      echo "<p>Erro ao atualizar.</p>" . $sqli->error;
   } else {
	   
	  if (file_exists($path)) {
		unlink($path);
	} 
	   
	   
      // vai forçar o recarregamento da imagem nova
      $fotoNova = '?' . microtime(true);
   }
}
?>

Abaixo apenas o restando do código que faz o upload, então é acima que preciso isso.

<!doctype html>
<html>
   <head>
      <meta charset='utf-8'>
      <title>CLIENTES</title>
      <link href="css/estilo.css" rel="stylesheet" type="text/css">
   </head>
   <body>
      <form id="atualizar" method="post" enctype="multipart/form-data" onsubmit="return validaCampo(); return false;" >
         <?php
         // Seleciona apenas a foto do cliente id = $id_cliente
         $result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente=$id_cliente");
         if ($sqli->error) {
            die($sqli->error);
         } else {
            // Exibe as informações de cada usuário
            while ($nome = $result->fetch_assoc()) {
               // Exibimos a foto
               if (empty($nome['foto'])) {
                  echo "<img src='fotos/sem_foto.jpg' width='135' height='180'>";
               } else {
                  echo "<img src='fotos/" . $nome['foto'] . "$fotoNova' alt='Foto de exibição' width='145' height='180'><br>";
               }
               // Exibimos o nome e email..continua o resto do codigo aqui
            }
         }
         ?>    
         <input type="file" name="foto" accept="image/*"><br><br>
         <input type="hidden" name="enviar" value="1">
         <input type="submit" name="atualizar" value="Enviar" />
      </form>
   </body>
</html>

 

Achei esse código abaixo, mas nem faço ideia de como integrar a primeira parte do código que postei , Quem puder me ajudar ou ter alguma solução semelhante agradeço

 

function image_resize($file_name, $width, $height, $crop=FALSE) {
   list($wid, $ht) = getimagesize($file_name);
   $r = $wid / $ht;
   if ($crop) {
      if ($wid > $ht) {
         $wid = ceil($wid-($width*abs($r-$width/$height)));
      } else {
         $ht = ceil($ht-($ht*abs($r-$w/$h)));
      }
      $new_width = $width;
      $new_height = $height;
   } else {
      if ($width/$height > $r) {
         $new_width = $height*$r;
         $new_height = $height;
      } else {
         $new_height = $width/$r;
         $new_width = $width;
      }
   }
   $source = imagecreatefromjpeg($file_name);
   $dst = imagecreatetruecolor($new_width, $new_height);
   image_copy_resampled($dst, $source, 0, 0, 0, 0, $new_width, $new_height, $wid, $ht);
   return $dst;
}
$img_to_resize = image_resize(‘path-to-jpg-image’, 250, 250);

 

 

Postado

Bom dia Sra @Camilavip ,,

 

De imediato,, verifique alguns erros de código fonte.

$error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels";

} { 

// Pega extensão da imagem

você pode jogar o function image_resize no topo da script se assim desejar e o $img_to_resize antes da conclusão do script de upload,, lembre-se de corrigir o Path..

Postado
1 hora atrás, DHB Serviços disse:

Bom dia Sra @Camilavip ,,

 

De imediato,, verifique alguns erros de código fonte.


$error[3] = "Altura da imagem não deve ultrapassar " . $altura . " pixels";

} { 

// Pega extensão da imagem

você pode jogar o function image_resize no topo da script se assim desejar e o $img_to_resize antes da conclusão do script de upload,, lembre-se de corrigir o Path..

Realmente tem alguns erros a corrigir. Quanto ao restante, já tentei de tudo, mas não consegui, para cima ou para baixo não consegui. Aqui está até a parte do sistema todo funcional para quem quiser testar e ver se me ajuda. só colocar depois o clientes.php?acao=Alterar&id=1 para ir direto para o cadastro.

https://*****/file/WUZG3YiL#nc-q7V3ut03mMXJlMWz8ToedXwK9NE6Nd_bMZhOTpWo

Nos pontinhos é mega . nz

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!