Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: poprawienie uploadu
Forum PHP.pl > Forum > PHP
istrd
Witam.
Temat uploadu był wałkowany 10000000 razy ale większość opierała się na odjęci 3 liter z nazwy pliku i rozpoznaniu po tym formatu, Rozwiązanie dla mnie wydaje się głupie więc postanowiłem powoli dojść do tego jak zrobić upload, Związku z tym mam prośbę o pomoc napisałem sobie kod ale za każdym razem wykonuje mi instrukcję else mimo poprawności uploadowanego pliku. Proszę o powiedzenie gdzie jest błąd że za każdym razem jest wykonywana ta instrukcja. Może jest gdzieś moje nie dopatrzenie ale za nic w świecie nie mogę tego dojrzeć.

Tą instrukcje wykonuje cały czas
  1. else
  2. {
  3. echo"Format pliku jest nie prawidłowy.<br> ";
  4.  
  5. }



  1. <?php
  2.  
  3. <form enctype="multipart/form-data" method="POST">
  4. <input name="plik" type="file">
  5. <input type="submit" value="Wgraj">
  6. </form>
  7. ';
  8.  
  9. if(is_file($_FILES['plik']['tmp_name']))
  10. {
  11. $u_plik = $_FILES['plik']['tmp_name'];
  12. $u_nazwa = $_FILES['plik']['name'];
  13. $u_rozmiar = $_FILES['plik']['size'];
  14. $u_typ=$_FILES['plik']['type'];
  15.  
  16. if(is_uploaded_file($u_plik))
  17. {
  18.  
  19.  
  20. $tab[]='image/gif';
  21. $tab[]='image/jpg';
  22.  
  23. if(array_search($_FILES['plik']['type'],$tab)!=false)
  24. {
  25.  
  26.  
  27. move_uploaded_file($u_plik,"avatar/".$u_nazwa);
  28. list($width, $height, $type, $attr) = getimagesize("avatar/$u_nazwa");
  29. if(($width>240) or ($height>320))
  30. {
  31. echo "Wysokośc lub szerokośc obrazka jest za duża maksymalna rozdzielczośc obrazka to 240x320 !<br>";
  32. unlink("avatar/$nazwa");
  33.  
  34. }
  35. else
  36. {
  37. echo "Plik: <b>$nazwa</b> ($u_rozmiar B) został uploadowany!"."<br><br>";
  38.  
  39. }
  40.  
  41.  
  42. }
  43. else
  44. {
  45. echo"Format pliku jest nie prawidłowy.<br> ";
  46.  
  47. }
  48.  
  49.  
  50. }
  51. }
  52.  
nospor
http://pl.php.net/array_search
Cytat
Ta funkcja może zwrócić logiczne FALSE, ale także zwykłą wartość rozpoznawaną jako FALSE, na przykład 0 lub "". Więcej informacji w rozdziale dotyczącym typów logicznych. Użyj operatora === aby sprawdzić wartość i typ zwracany przez tę funkcję.
istrd
Przerobiłem już myślałem że dobrze ale da się wszystkie typy plików wgrać włącznie z php. Dlaczego gdzie popełniam błąd ?



  1. <form enctype="multipart/form-data" method="POST">
  2. <input name="plik" type="file">
  3. <input type="submit" value="Wgraj">
  4. </form>
  5. ';
  6.  
  7. if(is_file($_FILES['plik']['tmp_name']))
  8. {
  9. $u_plik = $_FILES['plik']['tmp_name'];
  10. $u_nazwa = $_FILES['plik']['name'];
  11. $u_rozmiar = $_FILES['plik']['size'];
  12. $u_typ=$_FILES['plik']['type'];
  13. $log=$_SESSION['user'];
  14. $nazwa=$log.$u_nazwa;
  15.  
  16.  
  17.  
  18. if(is_uploaded_file($u_plik))
  19. {
  20.  
  21.  
  22. $tab[]='image/gif';
  23. $tab[]='image/jpg';
  24. $tab[]='image/png';
  25. $tab[]='image/jpeg';
  26. $tab[]='image/jpeg';
  27. if(array_search($u_typ,$tab)!==0)
  28. {
  29.  
  30.  
  31. move_uploaded_file($u_plik,"avatar/".$nazwa);
  32. list($width, $height, $type, $attr) = getimagesize("avatar/$nazwa");
  33. if(($width>240) or ($height>320))
  34. {
  35. echo "Wysokośc lub szerokośc obrazka jest za duża maksymalna rozdzielczośc obrazka to 240x320 !<br>";
  36. unlink("avatar/$nazwa");
  37.  
  38. }
  39. else
  40. {
  41. polacz();
  42. echo "Plik: <b>$nazwa</b> ($u_rozmiar B) został uploadowany!"."<br><br>";
  43. $update=mysql_query("UPDATE user SET avatar='$nazwa' WHERE login='$log'");
  44.  
  45. }
  46.  
  47.  
  48. }
  49. else
  50. {
  51. echo"Format pliku jest nie prawidłowy.<br> ";
  52.  
  53. }
  54.  
  55.  
  56. }
  57. }
  58.  
  59.  
nospor
czemu przeczytales to wyrywkowo bez zrozumienia?
zastanow sie jaka jest roznica miedzy:
if(array_search($u_typ,$tab)!==0)
a
if(array_search($u_typ,$tab)!==false)
blawat
Cytat(istrd @ 29.03.2010, 18:25:31 ) *
Przerobiłem już myślałem że dobrze ale da się wszystkie typy plików wgrać włącznie z php. Dlaczego gdzie popełniam błąd ?



  1.  
  2. $tab[]='image/gif';
  3. $tab[]='image/jpg';
  4. $tab[]='image/png';
  5. $tab[]='image/jpeg';
  6. $tab[]='image/jpeg';
  7.  
  8.  
  9.  
  10.  
  11. if(array_search($u_typ,$tab)!==0)
  12.  
  13.  



wstaw sobie przed if'em

  1. echo $u_typ;


bedziesz wiedzial dokladnie jaki jest typ tego co przesylasz smile.gif tak do celow pogladowych tongue.gif i przeczytaj ze zrozumienim o tym co pisal
nospor
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.