Ir para conteúdo
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

Compartilhar este post


Link para o post
Compartilhar em outros 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? 

Compartilhar este post


Link para o post
Compartilhar em outros 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));

Compartilhar este post


Link para o post
Compartilhar em outros 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>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.