Sprawdzenie poprawności przesłanego pliku
Założenie: Nauczymy się, jak sprawdzić, czy przesłany plik ma poprawny typ i rozmiar.
Krok po kroku:
- Sprawdzenie, czy plik został przesłany:
if (isset($_FILES['plik'])) { // Plik został przesłany } else { echo "Błąd: Brak pliku."; exit; }
Ten fragment kodu sprawdza, czy zmienna `$_FILES[‘plik’]` istnieje. Zmienna ta jest automatycznie tworzona przez PHP, gdy formularz zawiera element ``.
- Sprawdzenie typu pliku:
$dozwolone_typy = ['image/jpeg', 'image/png']; $typ_pliku = $_FILES['plik']['type']; if (!in_array($typ_pliku, $dozwolone_typy)) { echo "Błąd: Nieprawidłowy typ pliku."; exit; }
Tutaj definiujemy tablicę dozwolonych typów plików i sprawdzamy, czy typ przesłanego pliku znajduje się w tej tablicy.
- Sprawdzenie rozmiaru pliku:
$maksymalny_rozmiar = 2 * 1024 * 1024; // 2 MB $rozmiar_pliku = $_FILES['plik']['size']; if ($rozmiar_pliku > $maksymalny_rozmiar) { echo "Błąd: Plik jest za duży."; exit; }
Ten kod sprawdza, czy rozmiar pliku (w bajtach) nie przekracza zdefiniowanego limitu (2 MB w tym przykładzie).
- Przetwarzanie pliku (jeśli wszystko jest OK):
$nazwa_pliku = $_FILES['plik']['name']; $tymczasowa_nazwa = $_FILES['plik']['tmp_name']; $cel = 'uploads/' . $nazwa_pliku; // ścieżka docelowa if (move_uploaded_file($tymczasowa_nazwa, $cel)) { echo "Plik został przesłany pomyślnie!"; } else { echo "Błąd podczas przesyłania pliku."; }
Jeśli wszystkie poprzednie kroki zakończyły się sukcesem, ten kod przenosi plik z tymczasowej lokalizacji na serwerze do wybranego katalogu.
Pamiętaj o utworzeniu katalogu “uploads” w tym samym katalogu co skrypt.
Ten przykład pokazuje podstawy weryfikacji przesłanych plików. Zachęcamy do dalszego zgłębiania tematu, aby poznać bardziej zaawansowane techniki bezpieczeństwa i obsługi plików.