Sprawdzenie, czy przesłany plik jest poprawny
Założenie: Sprawdzimy, czy przesłany przez użytkownika plik jest obrazem w formacie JPG lub PNG, oraz czy jego rozmiar nie przekracza 2MB.
Krok po kroku:
- Pobranie informacji o pliku: Używamy zmiennych globalnych
$_FILES
, aby uzyskać dostęp do danych przesłanego pliku.$_FILES['plik']['name']
zawiera nazwę pliku,$_FILES['plik']['type']
jego typ MIME, a$_FILES['plik']['size']
rozmiar w bajtach. - Walidacja typu pliku: Sprawdzamy, czy typ MIME wskazuje na obraz JPG lub PNG.
- Walidacja rozmiaru pliku: Sprawdzamy, czy rozmiar pliku nie przekracza 2MB (2097152 bajtów).
- Przeniesienie pliku: Jeżeli plik spełnia kryteria, przenosimy go do wybranego katalogu. Pamiętaj o zabezpieczeniu przed nadpisaniem plików o tej samej nazwie!
$nazwaPliku = $_FILES['plik']['name'];
$typPliku = $_FILES['plik']['type'];
$rozmiarPliku = $_FILES['plik']['size'];
$dozwoloneTypy = ['image/jpeg', 'image/png'];
if (!in_array($typPliku, $dozwoloneTypy)) {
echo "Błędny typ pliku. Proszę przesłać plik JPG lub PNG.";
exit;
}
$maksymalnyRozmiar = 2097152;
if ($rozmiarPliku > $maksymalnyRozmiar) {
echo "Plik jest za duży. Maksymalny rozmiar to 2MB.";
exit;
}
$katalogDocelowy = 'uploads/';
$nowyNazwapliku = uniqid() . '_' . $nazwaPliku; //Unikalna nazwa pliku
$sciezkaDocelowa = $katalogDocelowy . $nowyNazwapliku;
if (move_uploaded_file($_FILES['plik']['tmp_name'], $sciezkaDocelowa)) {
echo "Plik został przesłany pomyślnie!";
} else {
echo "Wystąpił błąd podczas przesyłania pliku.";
}
Pamiętaj, że ten przykład to tylko podstawowa walidacja. W rzeczywistych aplikacjach należy dodać bardziej zaawansowane mechanizmy bezpieczeństwa, np. sprawdzanie rozszerzenia pliku, aby zapobiec atakom.
Ten przykład pokazuje podstawy weryfikacji przesłanych plików w PHP. Zachęcamy do dalszego zgłębiania tematu i poznawania bardziej zaawansowanych technik walidacji!