Jump to content
BomLogo

Sistema de cadastro com foto

Recommended Posts

Boa noite!

Sou iniciante no PHP, estudo por conta própria e baixei um sistema de cadastro com foto.

Ele cadastra, faz o upload do arquivo, verifica é ele é válido, mas no momento que cadastra, dá um erro que está na foto em anexo.

 

Essa é a parte do código que é relatado na imagem:

if(isset($_FILES['foto']) && $_FILES['foto']['size'] > 0):  

                $extensoes_aceitas = array('bmp','png','svg','jpeg','jpg');
essa é a linha do erro --->   $extensao = strtolower(end(explode('.',$_FILES['foto']['name'])));

                 // Validamos se a extensão do arquivo é aceita
                if (array_search($extensao, $extensoes_aceitas) === false):
                   echo "<h1>Extensão Inválida!</h1>";
                   exit;
                endif;

 

Podem me dar uma ajuda?

Obrigado,

Carlos

www.bomlogo.com.br

 

 

teste.jpg

Share this post


Link to post
Share on other sites

Olá não posso te ajudar :( sou iniciante e estudo por conta própria também, gostaria de perguntar onde você encontrou este sistema de cadastro com foto para download? Estou a procura de aprender isso há muito tempo, mas não acho em local algum kkk e por incrível que pareça também estou lidando com um sistema de cadastro, porém, sem este mecanismo de fotos, e gostaria muito de implementá-lo no meu projeto. Se não for muito incomodo teria como me mandar o link? 

Share this post


Link to post
Share on other sites

encontrei a resposta aqui no fórum mesmo. Resposta do

washalbano

em:

https://forum.imasters.com.br/topic/579367-erro-no-upload-de-images/

 

 

Olá!
Essa mensagem aparece quando se aninha funções de arrays assim: $extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
tente assim:

$extensao = explode('.', $_FILES['arquivo']['name']);
$extensao = strtolower(end($extensao));

Share this post


Link to post
Share on other sites
3 horas atrás, BomLogo disse:

Boa noite!

Sou iniciante no PHP, estudo por conta própria e baixei um sistema de cadastro com foto.

Ele cadastra, faz o upload do arquivo, verifica é ele é válido, mas no momento que cadastra, dá um erro que está na foto em anexo.

 

Essa é a parte do código que é relatado na imagem:

if(isset($_FILES['foto']) && $_FILES['foto']['size'] > 0):  

                $extensoes_aceitas = array('bmp','png','svg','jpeg','jpg');
essa é a linha do erro --->   $extensao = strtolower(end(explode('.',$_FILES['foto']['name'])));

                 // Validamos se a extensão do arquivo é aceita
                if (array_search($extensao, $extensoes_aceitas) === false):
                   echo "<h1>Extensão Inválida!</h1>";
                   exit;
                endif;

 

Podem me dar uma ajuda?

Obrigado,

Carlos

www.bomlogo.com.br

 

 

teste.jpg

Tente fazer assim

 

<?php
  
 
    class Upload{
        private $arquivo;
        private $altura;
        private $largura;
        private $pasta;
 
        function __construct($arquivo, $altura, $largura, $pasta){
            $this->arquivo = $arquivo;
            $this->altura  = $altura;
            $this->largura = $largura;
            $this->pasta   = $pasta;
        }
         
        private function getExtensao(){
            //retorna a extensao da imagem  
            return $extensao = strtolower(end(explode('.', $this->arquivo['name'])));
        }
         
        private function ehImagem($extensao){
            $extensoes = array('gif', 'jpeg', 'jpg', 'png');     // extensoes permitidas
            if (in_array($extensao, $extensoes))
                return true;    
        }
         
        //largura, altura, tipo, localizacao da imagem original
        private function redimensionar($imgLarg, $imgAlt, $tipo, $img_localizacao){
            //descobrir novo tamanho sem perder a proporcao
            if ( $imgLarg > $imgAlt ){
                $novaLarg = $this->largura;
                $novaAlt = round( ($novaLarg / $imgLarg) * $imgAlt );
            }
            elseif ( $imgAlt > $imgLarg ){
                $novaAlt = $this->altura;
                $novaLarg = round( ($novaAlt / $imgAlt) * $imgLarg );
            }
            else // altura == largura
                $novaAltura = $novaLargura = max($this->largura, $this->altura);
             
            //redimencionar a imagem
             
            //cria uma nova imagem com o novo tamanho   
            $novaimagem = imagecreatetruecolor($novaLarg, $novaAlt);
             
            switch ($tipo){
                case 1: // gif
                    $origem = imagecreatefromgif($img_localizacao);
                    imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0,
                    $novaLarg, $novaAlt, $imgLarg, $imgAlt);
                    imagegif($novaimagem, $img_localizacao);
                    break;
                case 2: // jpg
                    $origem = imagecreatefromjpeg($img_localizacao);
                    imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0,
                    $novaLarg, $novaAlt, $imgLarg, $imgAlt);
                    imagejpeg($novaimagem, $img_localizacao);
                    break;
                case 3: // png
                    $origem = imagecreatefrompng($img_localizacao);
                    imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0,
                    $novaLarg, $novaAlt, $imgLarg, $imgAlt);
                    imagepng($novaimagem, $img_localizacao);
                    break;
            }
             
            //destroi as imagens criadas
            imagedestroy($novaimagem);
            imagedestroy($origem);
        }
         
        public function salvar(){                                   
            $extensao = $this->getExtensao();
             
            //gera um nome unico para a imagem em funcao do tempo
            $novo_nome = time() . '.' . $extensao;
            //localizacao do arquivo 
            $destino = $this->pasta . $novo_nome;
             
            //move o arquivo
            if (! move_uploaded_file($this->arquivo['tmp_name'], $destino)){
                if ($this->arquivo['error'] == 1)
                    return "Tamanho excede o permitido";
                else
                    return "Erro " . $this->arquivo['error'];
            }
                 
            if ($this->ehImagem($extensao)){                                             
                //pega a largura, altura, tipo e atributo da imagem
                list($largura, $altura, $tipo, $atributo) = getimagesize($destino);
 
                // testa se é preciso redimensionar a imagem
                if(($largura > $this->largura) || ($altura > $this->altura))
                    $this->redimensionar($largura, $altura, $tipo, $destino);
            }
            return "Sucesso";
        }                       
    }




  if ((isset($_POST["submit"])) && (! empty($_FILES['foto']))){
                $upload = new Upload($_FILES['foto'], 1000, 800, "fotos/");
                    echo $upload->salvar();
            }
?>

<html>
  <head>
    <body>
     <form method='post' enctype='multipart/form-data'><br>
        <input type='file' name='foto' value='Cadastrar foto'>
        <input type='submit' name='submit'>
    </form>     
      
    </body>
  </head>
</html>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.