Принятие только файлов PDF: несколько методов проверки формы

При разработке веб-приложения, требующего функции загрузки файлов, часто необходимо ограничить типы файлов, которые могут быть приняты. В этой статье мы рассмотрим несколько методов реализации проверки формы, позволяющей загружать только файлы PDF. Мы предоставим примеры кода для каждого метода, чтобы помочь вам интегрировать эту функцию в ваши собственные проекты.

Метод 1: атрибут принятия HTML
Самый простой способ обеспечить проверку типа файла — использовать атрибут принятия HTML. Указав значение «application/pdf» для атрибута принятия элемента ввода файла, вы можете ограничить выбор файлов только файлами PDF.

<form>
  <input type="file" accept="application/pdf">
  <input type="submit" value="Upload">
</form>

Метод 2: проверка типа файла JavaScript
Если вам нужен больший контроль над процессом проверки, вы можете использовать JavaScript для проверки типа выбранного файла перед отправкой формы. Вот пример использования JavaScript:

<form>
  <input type="file" id="pdfFile">
  <input type="submit" value="Upload" onclick="validateFile()">
</form>
<script>
  function validateFile() {
    var fileInput = document.getElementById("pdfFile");
    var filePath = fileInput.value;
    var allowedExtensions = /(\.pdf)$/i;
    if (!allowedExtensions.exec(filePath)) {
      alert("Please upload only PDF files.");
      return false;
    }
  }
</script>

Метод 3: проверка на стороне сервера
Проверку на стороне клиента можно обойти, поэтому важно также выполнять проверку на стороне сервера. В зависимости от вашей серверной технологии вы можете проверить расширение или MIME-тип загруженного файла, чтобы убедиться, что это PDF-файл.

Вот пример на PHP:

<?php
$allowedExtensions = array("pdf");
$fileName = $_FILES["file"]["name"];
$fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
if (!in_array(strtolower($fileExtension), $allowedExtensions)) {
  echo "Please upload only PDF files.";
  return;
}
// Process the uploaded file
?>