Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzanie poprawności rozszerzenia wysyłanego pliku
Forum PHP.pl > Forum > Przedszkole
ebate
Chce, aby skrypt sprawdzał, czy wysyłany plik mam poprawne rozszerzenie, a w przypadku złego wyskoczył błąd np. Niepoprawne rozszerzenie pliku.

Przy zmianie nazwy pliku dostałem wskazówke:

  1. $fileData = pathinfo($_FILES['pliczek']['name']);
  2.  
  3. // pod $fileData['extension'] masz rozszerzenie pliku - możesz to wykorzystać
  4.  
  5. // do sprawdzenia czy plik ma takie rozszerzenie jak mieć powinien
  6.  
  7. // i jesli nie uzyć unlink($_FILES['pliczek']['tmp_name']); i zwrócić błąd ;)
  8.  
  9. $filename = $konto.'.'.$fileData['extension'];
  10.  
  11. move_uploaded_file($_FILES['pliczek']['tmp_name'],"pliki/".$filename);
  12.  
  13. $name = 'pliki/'.$filename;


Niby coś mi swita, ale nie do końca więc prosze o pomoc. Rozszerzenia mają być tylko .jpg i .png.

CuteOne
  1. $extArray = array('jpg', 'tra');
  2. $ext = in_array( end( explode($_FILES['pliczek']['tmp_name'] ) ), $extArray ) ? true : false;
ebate
Rozumiem, ze podany skrypt sprawdza poprawność rozszerzenia.

A co z błędem w przypadku złego rozszerzenia?
nospor
No to wyświetl błąd. Masz juz informacje czy jest ok czy nie jest a gdy nie jest ok to wyswietl blad. No IF nie umiesz użyć? To zajrzyj do manuala
ebate
No tak tylko ten kod nie działa.:

  1. $extArray = array('jpg');
  2.  
  3. $ext = in_array( end( explode($_FILES['pliczek']['tmp_name'] ) ), $extArray ) ? true : false;
  4.  
  5. if (false) { echo "Złe rozszerzenie" }


Wyświetla błąd:

Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\xampp\htdocs\PIOTR\register.php on line 59
mortus
Forum to nie parser. Zresztą w komunikacie błędu wyraźnie jest napisane, że brakuje średnika przed nawiasem zamykającym (}).
ebate
Przy tworzeniu konta podałem plik ze złym rozszerzeniem i wyskakuje:


Notice: Undefined index: extension in C:\xampp\htdocs\PIOTR\register.php on line 48

Warning: explode() expects at least 2 parameters, 1 given in C:\xampp\htdocs\PIOTR\register.php on line 57

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\PIOTR\register.php on line 57

Warning: end() expects parameter 1 to be array, null given in C:\xampp\htdocs\PIOTR\register.php on line 57
Konto aa2 zostalo utworzone, a zdjecie zostało wysłane.
Kliknij, aby wrócić do Strony głównej
CuteOne
mój błąd zamiast ['tmp_name'] powinno być ['name']

ps. nstepnym razem wrzucaj błędy w google - odpowiedź dostaniesz dużo szybciej niż na forum...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.