Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Upload pliku + sprawdzenie rozszerzenia, gdzie jest błąd?
OneCode
post 19.10.2009, 12:25:05
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 29.09.2009

Ostrzeżenie: (0%)
-----


Witam,

Jestem na etapie uploadu pliku na serwer i napotkałem dziwny problem, mianowicie sprawdzam sobie rozszerzenie i jeżeli się zgadza to ok, a jeżeli nie to błąd.
Zrobiłem to w ten sposób, ale ciągle zwraca mi błąd.
Będę wdzięczny jeżeli zerkniecie i podpowiecie gdzie jest błąd.

  1. $form .= '<form enctype="multipart/form-data" action="uploadavatar.php" method="post">';
  2. $form .= '<input type="hidden" name="MAX_FILE_SIZE" value="10000" />';
  3. $form .= '<input name="avatar" type="file" />';
  4. $form .= '<input type="submit" value="Zapisz avatar" name="wyslij" />';
  5. $form .= '</form>';
  6. echo $form;
  7.  
  8. $error = false;
  9.  
  10. $plik_tmp = $_FILES['avatar']['tmp_name'];
  11. $plik_nazwa = $_FILES['avatar']['name'];
  12. $plik_rozmiar = $_FILES['avatar']['size'];
  13. $plik_type = $_FILES['avatar']['type'];
  14.  
  15. if(!empty ($_POST['wyslij']))
  16. {
  17.  
  18. $odczyt = pathinfo($plik_nazwa);
  19. echo $odczyt['extension'].'<br />'; // to tylko, żeby zobaczyć jakie jest rozszerzenie
  20. $ext = $odczyt['extension'];
  21.  
  22. if ($ext !="jpg" || $ext !="pjpeg" || $ext !="jpeg" || $ext !="gif")
  23. {
  24. $error = true;
  25. $errorMsg .= 'Niedozwolone rozszerzenie pliku! Dozwolone pliki to: JPG lub GIF.<br />';
  26. $errorMsg .= 'Nazwa Twojego pliku to: ' .$plik_nazwa. ', rozserzenie: ' .$ext. '<br />';
  27. $file_upload="false";
  28. }
  29. }
  30.  
  31. if ($error == true)
  32. {
  33. echo $errorMsg . '<br />';
  34. }


Wiem, że po ifie nie ma elsa, ale to chwilowo nie ma znaczenia, bo ciągle wywala mi $errorMsg.

Będę wdzięczny za każdą podpowiedź.

Pozdrawiam,
Bartek.
Go to the top of the page
+Quote Post
ayeo
post 19.10.2009, 12:32:56
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


  1. $odczyt = pathinfo($plik_tmp);


Jakbyś zrobił var_dump( $odczyt ); to byś wiedział tongue.gif

Pozdrawiam!


--------------------
Go to the top of the page
+Quote Post
OneCode
post 19.10.2009, 13:59:04
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 29.09.2009

Ostrzeżenie: (0%)
-----


Sorry, ale chyba nie bardzo rozumiem o co Ci chodzi.

Zrobiłem var_dump( $odczyt ); ale jakoś mi to nie rozjaśniło umysłu.

  1. $odczyt = pathinfo($plik_nazwa);
  2. var_dump( $odczyt );


zwraca tablice z danymi: array(4) { ["dirname"]=> string(1) "." ["basename"]=> string(8) "test.jpg" ["extension"]=> string(3) "jpg" ["filename"]=> string(4) "test" } jpg

natomiast to co napisałeś:
  1. $odczyt = pathinfo($plik_tmp);
  2. var_dump( $odczyt );


zwraca pustą tablicę.

Pozdrawiam,
Bartek
Go to the top of the page
+Quote Post
zordon
post 19.10.2009, 14:07:59
Post #4





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


if ($ext !="jpg" || $ext !="pjpeg" || $ext !="jpeg" || $ext !="gif")

zmien || na && bo warunek ifa zawsze jest spelniony (w przypadku jpg: if(0 || 1 || 1 || 1) => 1 czyli wchodzi do bloku gdzie wyswietlasz komunikat o bledzie
Go to the top of the page
+Quote Post
OneCode
post 19.10.2009, 14:15:28
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 29.09.2009

Ostrzeżenie: (0%)
-----


Cytat(zordon @ 19.10.2009, 14:07:59 ) *
if ($ext !="jpg" || $ext !="pjpeg" || $ext !="jpeg" || $ext !="gif")

zmien || na && bo warunek ifa zawsze jest spelniony (w przypadku jpg: if(0 || 1 || 1 || 1) => 1 czyli wchodzi do bloku gdzie wyswietlasz komunikat o bledzie


No super, dziękuję bardzo.
Zakręciłem się w logice.

Pozdrawiam,
Bartek.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.06.2025 - 14:43