Formularze wieloczęściowe (multipart/form-data)

Założenie: Nauczymy się obsługiwać formularze HTML, które przesyłają dane w formacie multipart/form-data, umożliwiając przesyłanie plików na serwer.

Krok po kroku:

  1. Tworzenie formularza HTML: Utworzymy prosty formularz z polem do wyboru pliku.
  2. 
    <form action="upload.php" method="post" enctype="multipart/form-data">
      Wybierz plik: <input type="file" name="plik">
      <input type="submit" value="Wyślij">
    </form>
    				

    Atrybut enctype="multipart/form-data" jest kluczowy – informuje przeglądarkę o przesyłaniu danych w formacie wieloczęściowym.

  3. Obsługa formularza w PHP (upload.php): Napiszemy skrypt PHP, który przetworzy przesłane dane.
  4. 
     500000) { // 500KB
        echo "Przepraszam, Twój plik jest za duży.";
        $uploadOk = 0;
      }
    
      // Sprawdzenie typu pliku
      if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
      && $imageFileType != "gif" ) {
        echo "Przepraszam, tylko pliki JPG, JPEG, PNG & GIF są dozwolone.";
        $uploadOk = 0;
      }
    
      // Sprawdzenie, czy $uploadOk jest 0, a następnie ustawienie $uploadOk na 0, jeśli wystąpił błąd
      if ($uploadOk == 0) {
        echo "Przepraszam, Twój plik nie został przesłany.";
      // Jeśli wszystko jest w porządku, spróbuj przesłać plik
      } else {
        if (move_uploaded_file($_FILES["plik"]["tmp_name"], $target_file)) {
          echo "Plik ". htmlspecialchars( basename( $_FILES["plik"]["name"])). " został przesłany.";
        } else {
          echo "Przepraszam, wystąpił błąd podczas przesyłania pliku.";
        }
      }
    }
    ?>
    				

    Kod ten sprawdza rozmiar i typ pliku, a następnie przenosi go do folderu „uploads/”. Pamiętaj o utworzeniu tego folderu!

Ten przykład pokazuje podstawy obsługi formularzy multipart/form-data w PHP. Zachęcamy do dalszego zgłębiania tematu, np. dodając walidację danych i obsługę błędów.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *