Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzanie wielkości obrazka(pliku)
Forum PHP.pl > Forum > Przedszkole
MOniToR
  1. <?
  2. include(&#092;"header.tpl\");
  3. include(&#092;"db.php\");
  4. $zapytanie = &#092;"select * from users where user_id ='$user_id'\";
  5. $wynik = mysql_query($zapytanie);
  6. $row = mysql_fetch_array($wynik);
  7. $plik1 = $row[&#092;"avatar\"];
  8. $katalog=getcwd ();
  9. $zdjecie = $katalog.&#092;"/wyslane/\".$plik1;
  10. unlink($zdjecie);
  11.  
  12.  
  13. if($_FILES['plikuzytkownika']['type'] == 'image/pjpeg') {
  14. $rozszezenie = 'jpg'; 
  15. } 
  16. elseif ($_FILES['plikuzytkownika']['type'] == 'image/gif') { 
  17. $rozszezenie = 'gif'; 
  18. } 
  19. elseif ($_FILES['plikuzytkownika']['type'] == 'image/png') { 
  20. $rozszezenie = 'png'; 
  21. } 
  22. else { 
  23. $rozszezenie = 'error'; 
  24. echo &#092;"Nieprawidłowy format pliku, dozwolone tylko PNG, JPG i GIF\"; 
  25.  
  26. } 
  27. $roz=$rozszezenie; 
  28. srand((double) microtime()*1000000); 
  29. $naz=md5(uniqid(rand())); 
  30. $url=&#092;"$naz.$roz\"; 
  31. $folder = &#092;"wyslane\"; 
  32.  
  33. $nick = $_COOKIE['prawid_uzytkownik'];
  34. $sql=&#092;"UPDATE users SET avatar='$url' where user_name ='$nick'\";
  35. $result =mysql_query($sql);
  36. move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'], 
  37. $_SERVER['DOCUMENT_ROOT/'].($folder).&#092;"/\".$url); 
  38.  
  39. $g=&#092;"wyslane/$url\"; 
  40. if (file_exists($g)) 
  41. { 
  42. print(&#092;"<script>window.location=\"user_ed.php?profil=$nick\"</script>\");
  43. echo &#092;"Plik wysłano\"; 
  44. } 
  45. else 
  46. { 
  47. echo &#092;"Pliku nie wysłano problem z połączeniem.\"; 
  48. exit; 
  49. } 
  50. include(&#092;"footer.tpl\");
  51. ?>


Tak wygląda mój skrypt do wysyłania avatarów w profilu uzytkownika. Chciałbym aby wysyłał on tylko avatary o rozmiarze 80x80 i w przypadku wiekszych pokazywał komunikat, będe wdzieczny za pomoc.
Liko
Zainteresuj się funkcją: getimagesize" title="Zobacz w manualu PHP" target="_manual. Ta funkcja tworzy tablice gdzie klucz '0' to szerokość obrazka, a klucz '1' to wysokość. Wstaw to przed uploudowaniem obrazka i napisz if'a. Jeżeli bedą rozmiary takie jak chcesz to uploadujesz, a jak nie to wywalasz komunikat. Chyba proste nie ?
MOniToR
Cytat(Liko @ 2004-12-22 19:02:52)
Chyba proste nie ?

Nie.... wstawiam na poczatek
  1. <?php
  2. $a = getimagesize($plikuzytkownika);
  3. if($a[0]='80' && $a[1]='80') {
  4.  
  5. ?>

i dalej moge wgrywac plik o każdym rozmiarze.
Liko
  1. <?
  2. include(&#092;"header.tpl\");
  3. include(&#092;"db.php\");
  4. $zapytanie = &#092;"select * from users where user_id ='$user_id'\";
  5. $wynik = mysql_query($zapytanie);
  6. $row = mysql_fetch_array($wynik);
  7. $plik1 = $row[&#092;"avatar\"];
  8. $katalog=getcwd ();
  9. $zdjecie = $katalog.&#092;"/wyslane/\".$plik1;
  10. unlink($zdjecie);
  11. $imageSize = $_FILES['plikuzytkownika']['tmp_name'];
  12.  
  13. if($_FILES['plikuzytkownika']['type'] == 'image/pjpeg') {
  14. $rozszezenie = 'jpg';
  15. }
  16. elseif ($_FILES['plikuzytkownika']['type'] == 'image/gif') {
  17. $rozszezenie = 'gif';
  18. }
  19. elseif ($_FILES['plikuzytkownika']['type'] == 'image/png') {
  20. $rozszezenie = 'png';
  21. } else if( $imageSize[0] != 80 || $imageSize[1] != 80 ) {
  22. echo 'Ten rozmiar pliku jest zaduzy.';
  23. } else {
  24. $rozszezenie = 'error';
  25. echo &#092;"Nieprawidłowy format pliku, dozwolone tylko PNG, JPG i GIF\";
  26. }
  27. $roz=$rozszezenie;
  28. srand((double) microtime()*1000000);
  29. $naz=md5(uniqid(rand()));
  30. $url=&#092;"$naz.$roz\";
  31. $folder = &#092;"wyslane\";
  32.  
  33. $nick = $_COOKIE['prawid_uzytkownik'];
  34. $sql=&#092;"UPDATE users SET avatar='$url' where user_name ='$nick'\";
  35. $result =mysql_query($sql);
  36. move_uploaded_file($_FILES['plikuzytkownika']['tmp_name'],
  37. $_SERVER['DOCUMENT_ROOT/'].($folder).&#092;"/\".$url);
  38.  
  39. $g=&#092;"wyslane/$url\";
  40. if (file_exists($g))
  41. {
  42. print(&#092;"<script>window.location=\"user_ed.php?profil=$nick\"</script>\");
  43. echo &#092;"Plik wysłano\";
  44. }
  45. else
  46. {
  47. echo &#092;"Pliku nie wysłano problem z połączeniem.\";
  48. }
  49. include(&#092;"footer.tpl\");
  50. ?>


Tak wogole to mi się nie podoba ten twój upload ale dobra. Napisałem, ale nie jestem pewien czy okurat zadziała.
MOniToR
Dalej nie działa, cały czas moge wgrywać obrazki o dowolnym rozmiarze :|
crash
Cytat(Liko @ 2004-12-22 19:02:52)
  1. <?php
  2. $a = getimagesize($plikuzytkownika);
  3. if($a[0]='80' && $a[1]='80') {
  4.  
  5. ?>

i dalej moge wgrywac plik o każdym rozmiarze.

Oj chyba sie nam operator przypisania pomylil z operatorem porownania (== a nie =)
MOniToR
dalej nie działa........
gilbo
może spróbuj tak....
  1. <?php
  2.    
  3. function sprawdz_rozmiar($file)
  4. {
  5.    $max = 80;
  6.  
  7.    $size = getimagesize($file);
  8.  
  9.    if ( $size[0] <= $max && $size[1] <= $max )
  10.    {
  11.        $ret = 'Ok przyjmuję'; //tutaj dajesz kod jak obrazek jest ok!
  12.    }
  13.    else
  14.    {
  15.        $ret = ' Obrazek zbyt duży!!! '; //tutaj dajesz kod jak obrazek jest za duży
  16.    }
  17.  
  18. return $ret;
  19. }
  20.  
  21. ?>
MOniToR
dałem:
  1. <?php
  2. $file = $_FILES['plikuzytkownika']['type'];
  3. function sprawdz_rozmiar($file)
  4. {
  5.  $max = 80;
  6.  
  7.  $size = getimagesize($file);
  8.  
  9.  if ( $size[0] <= $max && $size[1] <= $max )
  10.  {
  11.  $ret = '1'; //tutaj dajesz kod jak obrazek jest ok!
  12.  }
  13.  else
  14.  {
  15.  $ret = '0'; //tutaj dajesz kod jak obrazek jest za duży
  16.  }
  17.  
  18. return $ret;
  19. }
  20. $rozmiar = sprawdz_rozmiar($file);
  21. if($rozmiar =='1') {
  22. ?>

i dalej kaszana ://///// sad.gif sad.gif sad.gif sad.gif sad.gif
crash
Nic dziwnego, ze nie dziala skoro sprawdzasz typ przeslanego pliku, wywolaj ta funkcje na pliku.
Liko
Może tak:
  1. <?php
  2. $file = $_FILES['plikuzytkownika']['tmp_name'];
  3. function sprawdz_rozmiar($file)
  4. {
  5.  $max = 80;
  6.  
  7.  $size = getimagesize($file);
  8.  
  9.  if ( $size[0] <= $max && $size[1] <= $max )
  10.  {
  11.  $ret = '1'; //tutaj dajesz kod jak obrazek jest ok!
  12.  }
  13.  else
  14.  {
  15.  $ret = '0'; //tutaj dajesz kod jak obrazek jest za duży
  16.  }
  17.  
  18. return $ret;
  19. }
  20. $rozmiar = sprawdz_rozmiar($file);
  21. if($rozmiar =='1') {
  22. ?>
MOniToR
yeeeee exclamation.gif wkońcu działa biggrin.gif dzięki Wam :*
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.