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

Upload de arquivo com campos obrigatorios


Diogo Freitas

Pergunta

Boa tarde,

Tempos atrás o moderador MLeandro me deu um código para realizar uploads.

Funcionou na boa mas eu gostaria de saber como faço para que seja necessário a introdução de outros campos.

O que eu queria é que quem fizesse upload fosse obrigado a digitar email, nome, assunto e fazer um comment ao ficheiro.

Bem já agora seria bom que quando alguém fizesse upload eu recebesse um email.lol

O código tá aqui:

<?php
if ($_POST["upload"]){
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){
            print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");
            }
        else {
            $Data = date("dmY-His");
            $Nome_Imagem = $Imagem["name"];
            $extensao = explode(".", $Nome_Imagem);
            $Extensao = $extensao[1];
            $Pasta = "imagens/";
            if(!file_exists($Pasta)){
        mkdir($Pasta);
        }
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        Print("Imagem exibita com &ecirc;xito!");
            }
        }
    }
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

bem hajam

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Adiona os campos e testa pra ver se eles estão vazios...

<?php
if ($_POST["upload"]){
$campo1 = trim($_POST['campo1']);
$campo2 = trim($_POST['campo2']);
if(empty($campo1) OR empty($campo2)){
echo 'Todos os campos são de preenchimento obrigatório';
}else{
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){
            print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");
            }
        else {
            $Data = date("dmY-His");
            $Nome_Imagem = $Imagem["name"];
            $extensao = explode(".", $Nome_Imagem);
            $Extensao = $extensao[1];
            $Pasta = "imagens/";
            if(!file_exists($Pasta)){
        mkdir($Pasta);
        }
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        Print("Imagem exibita com &ecirc;xito!");
            }
        }
    }
}
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><BR>
<input type="text" name="campo1" /><BR>
<input type="text" name="campo2" /><BR>
<input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Para receber por e-mail quando alguém baixar você teria que colocar um script apenas para forçar o download.

Link para o comentário
Compartilhar em outros sites

  • 0

Se você tivesse lido o script saberia né, mas deixa eu mastigar pra você, eu apenas inclui um if para verificar se os campos estão vazios, só isso, se você quiser que os dados adicionais vão para algum lugar pegue eles e coloque dentro do else que eu criei, lá você pode determinar se eles vão pra algum e-mail, banco de dados, txt, etc...

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde,

O que se passa é o seguinte.

O moderador Eserra me criou um código para upload de ficheiros com obrigatoriedade de preenchimento de alguns campos.

Até ai beleza. Mas eu necessitava de saber para onde vão os ficheiros e o resto da info entende?lol

ele me disse para ir na else e por não sei o que.

Me desculpem mas eu não vej nada disto.lol

<?php
if ($_POST["upload"]){
$campo1 = trim($_POST['campo1']);
$campo2 = trim($_POST['campo2']);
if(empty($campo1) OR empty($campo2)){
echo 'Todos os campos são de preenchimento obrigatório';
}else{
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){
            print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");
            }
        else {
            $Data = date("dmY-His");
            $Nome_Imagem = $Imagem["name"];
            $extensao = explode(".", $Nome_Imagem);
            $Extensao = $extensao[1];
            $Pasta = "imagens/";
            if(!file_exists($Pasta)){
        mkdir($Pasta);
        }
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        Print("Imagem exibita com &ecirc;xito!");
            }
        }
    }
}
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><BR>
<input type="text" name="campo1" /><BR>
<input type="text" name="campo2" /><BR>
<input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Link para o comentário
Compartilhar em outros sites

  • 0

Por se tratar da mesma coisa fundi os tópicos.

Respondendo a sua dúvidas:

1 - Para onde vão os arquivos? Segundo o seu código eles vão para uma pasta chamada imagens, como mostra o código abaixo

$Pasta = "imagens/";
            if(!file_exists($Pasta)){
        mkdir($Pasta);
        }
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        Print("Imagem exibita com &ecirc;xito!");
            }
        }
    }
}
2 - Para onde vão as outras informações? Atualmente para lugar algum. Vou botar um exemplo abaixo para você ver como deve ser, só acho que você deveria estudar algoritmos/lógica de programação, e só depois entrar no PHP, pois ai você já teria o embasamento para entender o que eu falei, toda linguagem de programação se começa a aprender por algoritmos/lógica de programação, só depois é que se vai pra prática. Vamos supor que eu queira que o dado que está no campo "campo1" vá para o meu e-mail, então o código ficaria:
<?php
if ($_POST["upload"]){
$campo1 = trim($_POST['campo1']);
$campo2 = trim($_POST['campo2']);
if(empty($campo1) OR empty($campo2)){
echo 'Todos os campos são de preenchimento obrigatório';
}else{
    if(isset($_FILES["Imagem"])){
        $Imagem = $_FILES["Imagem"];
        $Tamanhos = getimagesize($Imagem["tmp_name"]);
        $TipoArquivo = $_FILES['Imagem']['type'];
        if(!eregi("^(image)\/(pjpeg|jpeg|jpg|gif|png)$", $TipoArquivo)){
            print("<p align=\"center\">Tipo de arquivo desconhecido!</p>");
            }
        else {
            $Data = date("dmY-His");
            $Nome_Imagem = $Imagem["name"];
            $extensao = explode(".", $Nome_Imagem);
            $Extensao = $extensao[1];
            $Pasta = "imagens/";
            if(!file_exists($Pasta)){
        mkdir($Pasta);
        }
            $Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);
        Print("Imagem exibita com &ecirc;xito!");
/*
AQUI EU COLOCO A INFORMAÇÃO PARA ENVIAR POR E-MAIL, SE QUISER COLOCAR INFORMAÇÕES PARA IR PARA O BANCO TAMBÉM DEVE SER AQUI.
*/
mail('xxx@xxx.com','UPLOAD',$campo1);
            }
        }
    }
}
?>
<form name="Upload" action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="Imagem" /><BR>
<input type="text" name="campo1" /><BR>
<input type="text" name="campo2" /><BR>
<input type="submit" value="Enviar" />
<input type="hidden" name="upload" value="1" />
</form>

Onde xxx@xxx.com seria o meu e-mail, UPLOAD o título, $campo1 (que vem do formulário) seria a mensagem que seria enviada no e-mail.

Link para o comentário
Compartilhar em outros sites

  • 0

muitissimo obrigado.

voce tem razao, eu deveria estudar so k na verdade eu não estou kerendo entrar em php (logico que e muito bm saber e eu heid estudar), mas apenas necessito de alguns codigos para que possa por um site no ar. o site não e de base php enende?

muito obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

O erro tá por aqui.

$Novo_Nome = $Pasta . $Data . "." . $Extensao;
            $Caminho = $Pasta . $Novo_Nome;
            move_uploaded_file($Imagem["tmp_name"], $Novo_Nome);

Dá um echo na variável $Imagem["tmp_name"] e $Novo_Nome para ver o que está vindo (e se está vindo). Se estiverem vindo os valores ai tenha certeza das permissões na pasta "imagens"

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