Odbiór przesłanych plików ( $_FILES )

Założenie: Nauczymy się, jak odbierać informacje o przesłanych plikach za pomocą superglobalnej tablicy $_FILES w PHP.

Krok po kroku:

  1. Utworzenie formularza HTML do przesyłania plików:
    
    <form method="post" enctype="multipart/form-data" action="upload.php">
      Wybierz plik: <input type="file" name="plik">
      <input type="submit" value="Wyślij">
    </form>
    				

    Atrybut enctype="multipart/form-data" jest kluczowy dla przesyłania plików. upload.php to nazwa pliku, do którego zostaną wysłane dane.

  2. Odbiór danych w pliku upload.php:
    
    <?php
      if (isset($_FILES['plik'])) {
        $plik = $_FILES['plik'];
    
        // Sprawdzenie, czy plik został przesłany bez błędów
        if ($plik['error'] == UPLOAD_ERR_OK) {
          echo "Nazwa pliku: " . $plik['name'] . "<br>";
          echo "Typ pliku: " . $plik['type'] . "<br>";
          echo "Rozmiar pliku: " . $plik['size'] . " bajtów<br>";
          echo "Nazwa tymczasowa: " . $plik['tmp_name'] . "<br>";
    
          // Przeniesienie pliku do docelowego katalogu
          $cel = 'uploads/' . $plik['name'];
          if (move_uploaded_file($plik['tmp_name'], $cel)) {
            echo "Plik został pomyślnie przesłany.";
          } else {
            echo "Błąd podczas przesyłania pliku.";
          }
        } else {
          echo "Błąd podczas przesyłania pliku: " . $plik['error'];
        }
      } else {
        echo "Nie wybrano pliku.";
      }
    ?>
    				

    Kod ten sprawdza, czy plik został przesłany (isset($_FILES['plik'])), a następnie sprawdza kod błędu ($plik['error']). Jeśli nie ma błędów, wyświetla informacje o pliku i przenosi go do katalogu `uploads/` za pomocą funkcji `move_uploaded_file()`. Pamiętaj o utworzeniu katalogu `uploads/` w tym samym katalogu co `upload.php`.

Ten przykład pokazuje podstawy obsługi przesyłania plików w PHP za pomocą tablicy $_FILES. Zachęcamy do dalszego zgłębiania tematu, w tym walidacji plików, zabezpieczania przed atakami i zaawansowanej obsługi przesyłanych danych.

Dodaj komentarz 0

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