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

Upload e enctype="multipart/form-data", problema. PHP


GiovanniWeb

Pergunta

Olá, sou iniciante em PHP e queria que me ajudassem com um problema que parece ser bem comum.

Estou criando um formulário de cadastro como se fosse uma rede social, e nele, tem um campo para enviar uma imagem de avatar. Ok, eu sei que é preciso usar o modo enctype="multipart/form-data" no form para a transferência de arquivos, e sim, eu o uso. Mas meu problema é o seguinte:

Este é o meu código do form:

<form class="form" action="enviar.php" method="post" name="form" id="form1" accept-charset="utf-8" enctype="multipart/form-data" >

   <!-- resto do código -->

           <input class="form-upload" type="file" id="input_16" name="avatar" file-accept="jpg, jpeg, png, gif" file-maxsize="10240" />
   
   <!-- resto do código -->

</form>
E este o código da action PHP "enviar.php":
<?php

//resto do código

$avatar = $_POST['avatar'] or die ("falha no avatar");

//...


 //variável que insere conteudo no banco de dados:

$inserir = "INSERT INTO cadastro_DB (ID, nome, sobrenome, apelido, email, dia, mes, ano, senha, confirm_senha, avatar, avalie, conheceu, duvidas) VALUES ('id','$nome','$sobrenome','$apelido','$email','$dia','$mes','$ano','$senha','$confirm_senha','$avatar','','$conheceu','$criticas')"
 or die ("falha no inserir");

 //fazendo a consulta:

        $resultado = mysql_query($inserir) 
         or die('Could not connect: ' . mysql_error());
        
            echo "Dados adicionado com sucesso.<br>
            <a href='cadastro.php'><b><h4>Retornar ao cadastro</h4></b></a>";

//inicio do upload:

$imagem = $_FILES['avatar']['name']; //pega o nome da imagem
$destino="/avatar/$imagem"; //indica o destino onde será salva

  if ($_FILES["avatar"]["error"] > 0) //se tiver algum erro...
    {
    echo "Return Code: " . $_FILES["avatar"]["error"] . "<br> Escolha outra IMAGEM.";
    }
  else
    {

      move_uploaded_file($_FILES['avatar']['tmp_name'],$destino);
      echo "Salvo em: " . $destino;//para testar
      
    }
  ]

?>

Quando NÃO insiro o enctype="multipart/form-data" ele reconhece a variavel ($avatar) por POST normalmente, ou seja, o código funciona por completo, inclusive envia os dados para o banco de dados, só que a global $_FILES não recebe o arquivo, mesmo com no banco de dados ter salvo seu nome. O que resulta numa falha do upload.

Já quando eu INSIRO o enctype="multipart/form-data", a variável $avatar não recebe valor, a página morre no ' or die("falha no avatar") ', como eu declarei para saber o erro.

Gostaria de saber um jeito de usar o enctype="multipart/form-data" sem que afete o resto do documento, mas num unico form, sem ter que usar pop-up ou coisas do tipo. também gostaria de saber se estou usando o destino da imagem corretamente.

Obrigado desde já,

Giovanni.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Obrigado pela atenção! Consegui resolver meu problema, e não era nada do que nós esperavamos. Como estou trabalhando com um servidor online pela primeira vez em PHP, não sabia que eu deveria setar as permissões CHMOD para poder receber arquivos.

Estava realmente estranhando, pois no meu servidor local EasyPHP funcionou perfeitamente. Mas no online noads.biz ou xp3.biz (Que recomendo muito aliás! Gratuito!) não estava.

Para quem por acaso passa pelo mesmo, a solução é a seguinte:

- selecione a pasta a qual deseja salvar seus arquivos;

- procure um botão para gerenciar permissões, CHMOD ou coisas do tipo;

- e congigure-as para CHMOD 777, ou seja, o user, o grupo e qualquer pessoa podem ler, executar e inserir arquivos.

Grato! RESOLVIDO! :clap: :clap: :clap:

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
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...