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:

  1. 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.
  2. 
    $nazwaPliku = $_FILES['plik']['name'];
    $typPliku = $_FILES['plik']['type'];
    $rozmiarPliku = $_FILES['plik']['size'];
    				
  3. Walidacja typu pliku: Sprawdzamy, czy typ MIME wskazuje na obraz JPG lub PNG.
  4. 
    $dozwoloneTypy = ['image/jpeg', 'image/png'];
    if (!in_array($typPliku, $dozwoloneTypy)) {
      echo "Błędny typ pliku. Proszę przesłać plik JPG lub PNG.";
      exit;
    }
    				
  5. Walidacja rozmiaru pliku: Sprawdzamy, czy rozmiar pliku nie przekracza 2MB (2097152 bajtów).
  6. 
    $maksymalnyRozmiar = 2097152; 
    if ($rozmiarPliku > $maksymalnyRozmiar) {
      echo "Plik jest za duży. Maksymalny rozmiar to 2MB.";
      exit;
    }
    				
  7. 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!
  8. 
    $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!

Dodaj komentarz 0

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