Restringindo tipo de upload com método ACEPT

Para permitir apenas o upload de arquivos PDF em PHP, você pode usar o atributo accept no elemento de entrada do tipo “file” (input type=”file”) em seu formulário HTML. Isso irá fornecer uma sugestão para o navegador filtrar apenas os arquivos com a extensão PDF durante a seleção de arquivos.

Aqui está um exemplo de código HTML e PHP que implementa essa restrição:

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="pdfFile" accept=".pdf">
  <input type="submit" value="Upload">
</form>

No exemplo acima, o atributo accept=".pdf" especifica que apenas arquivos com a extensão .pdf serão exibidos na janela de seleção de arquivos do navegador.

Em seguida, no arquivo PHP (upload.php no exemplo acima), você pode adicionar a lógica de verificação para garantir que apenas arquivos PDF sejam aceitos. Aqui está um exemplo simples de como fazer isso:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $file = $_FILES["pdfFile"];

  if ($file["error"] == UPLOAD_ERR_OK) {
    $filename = $file["name"];
    $extension = pathinfo($filename, PATHINFO_EXTENSION);

    if (strtolower($extension) == "pdf") {
      // O arquivo é um PDF, você pode prosseguir com o processamento ou o salvamento.
      // Lembre-se de tomar as medidas de segurança apropriadas, como mover o arquivo para um diretório seguro e sanitizar o nome do arquivo.
    } else {
      echo "Apenas arquivos PDF são permitidos.";
    }
  } else {
    echo "Ocorreu um erro ao fazer o upload do arquivo.";
  }
}
?>

No exemplo acima, verificamos se não houve erros ao fazer o upload do arquivo. Em seguida, usamos a função pathinfo para obter a extensão do arquivo. Comparamos a extensão convertida para letras minúsculas com “pdf”. Se for um PDF, você pode prosseguir com o processamento do arquivo. Caso contrário, exibimos uma mensagem de erro.

Lembre-se de que este é apenas um exemplo básico e você deve implementar medidas de segurança adicionais, como validar o tamanho do arquivo, verificar se o arquivo é realmente um PDF e tomar cuidado para evitar ataques de injeção de código.

Rolar para cima