Restrict my form to receive only . doc, . docx and . pdg files

Asked

Viewed 54 times

-1

I have a page and a form that receives a file in the "File" field. I send this file to the server through a PHP code.

I would like to restrict that this form "File" field only receives files of type . doc, . docx or . pdf.

Could you point me in the right direction ?

Below is my PHP code that sends the file.

<?php
	
	setlocale(LC_ALL, 'pt_BR');
	setlocale(LC_TIME, 'portuguese-brazilian'); 
	
	//CRIANDO MENSAGEM DE ERRO -- NO CASO DE ERRO 


function enviarMensagem($dados)
{
	


	
	
		//ENVIANDO O FORMULÁRIO PARA O SERVIDOR DE EMAIL
		
				
			$nome_usuario = $_POST['nome-contato'];
			$cpf_usuario = $_POST['cpf-contato'];
			$email_usuario = $_POST['email-contato'];
			$data_usuario = $_POST['data-contato'];
			$telefone_usuario = $_POST['telefone-contato'];
			$celular_usuario = $_POST['celular-contato'];
			$interesse_usuario = $_POST['interesse-contato'];
			$salarial_usuario = $_POST['salarial-contato'];
			$uf_usuario = $_POST['uf-contato'];
			$cidade_usuario = $_POST['cidade-contato'];
			$unidade_usuario = $_POST['unidade-contato'];
			$mensagem_usuario = $_POST['mensagem-contato'];
			$cargo_usuario = "Estagiário";
			
			
			
			//Criar Variáveis de envio
			$destino = "[email protected]";
			$remetente = "[email protected]"; //Aqui tem que ser um email do próprio domínio. Email do site de hospedagem (Falta preencher)
			$assunto_format = "Trabalhe Conosco - DESPERTANDO TALENTOS"; //Pode ser qualquer mensagem
			$assunto = utf8_decode($assunto_format);
			
			//Montar o corpo da mensagem (Essa mensagem é a que chegará na caixa de email)
			
			
			$mensagem = "DESPERTANDO TALENTOS\n";
			$mensagem .= "Candidato: " . utf8_decode($nome_usuario) . "\n";
			$mensagem .= "CPF: " . utf8_decode($cpf_usuario) . "\n";
			$mensagem .= "Email do Candidato: " . utf8_decode($email_usuario) . "\n";
			$mensagem .= "Data de Nascimento do Candidato: " . utf8_decode($data_usuario) . "\n";
			$mensagem .= "Telefone do Candidato: " . utf8_decode($telefone_usuario) . "\n";
			$mensagem .= "Celular do Candidato: " . utf8_decode($celular_usuario) . "\n";
			$mensagem .=  utf8_decode("Área de Interesse do Candidato: ") . utf8_decode($interesse_usuario) . "\n";
			$mensagem .= "Cargo de Interesse do Candidato: " . utf8_decode($cargo_usuario) . "\n";
			$mensagem .= utf8_decode("Pretenção Salarial do Candidato: ") . utf8_decode($salarial_usuario) . "\n";
			$mensagem .= "Estado do Candidato: " . utf8_decode($uf_usuario) . "\n";
			$mensagem .= "Cidade do Candidato: " . utf8_decode($cidade_usuario) . "\n";
			$mensagem .= "Unidade do Candidato: " . utf8_decode($unidade_usuario) . "\n \n";
			$mensagem .= "Mensagem do Candidato: \n \n" . utf8_decode($mensagem_usuario);
			
			
			
			
			//Função está comentada pois ela só funcionará no servidor de hospedagem   return mail($destino, $assunto, $mensagem, $remetente);
			
			
			
			
			//Código de Envio do Arquivo anexado no formulário
			
			if( isset($_POST["enviar-contato"]) )
			{
				$nombre = $_POST["nome-contato"];
												
				$numero_erro = $_FILES['botao-upload']['error'];
				$mensagem_contato = $array_erro[$numero_erro];
				
				$arquivo_temporario = $_FILES['botao-upload']['tmp_name'];
				$arquivo = basename($nombre. " - " . $_FILES['botao-upload']['name'] . " - Estagio");
				$diretorio = "arquivos_curriculos";
				
				$novo_nome_arquivo = $_POST["nome-contato"];
						
				if(move_uploaded_file($arquivo_temporario, $diretorio."/".$arquivo))
				{
					$mensagem_contato = "Arquivo Enviado com Sucesso";			
				}
				else
				{
					$numero_erro = $_FILES['botao-upload']['error'];
					$mensagem_contato = $array_erro[$numero_erro];
					
				}
									
			}
			
		return mail($destino, $assunto, $mensagem, $remetente);

	}


?>

  • 1

    I don’t know if I understand your question, but I believe that restricting your input to the type of file already solves your problem. For this use the attribute accept

1 answer

1


FRONTEND:

<input type="file" accept=".gif,.jpg,.jpeg,.png,.doc,.docx">

BACKEND:

$file_info = pathinfo($_FILES['botao-upload']['tmp_name'])

$extencao = $file_info['extension']

$extencao_aceitas = Array('jpg','png');

if (in_array($extencao, $extencao_aceitas)){
  ...
} else {
  ...
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.