Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]problem z uploadem avatara
-gtasan-
post
Post #1





Goście







Witam!
Problem polega na tym, że chciałbym, aby użytkownik mojej strony mógł wrzucić swój awatar, który następnie zostanie zmieniony do określonej wielkości i rozszerzenia, oraz zostanie zmieniona nazwa pliku na id użytkownika w bazie. Plik się wrzuca na serwer, zmienia się wielkość i roszerzenie ale problem pojawia się przy zmianie nazwy na id użytkownika z bazy, bo po prostu się nie zmienia i powstaje na serwerze plik .jpg. Bardzo byłbym wdzięczny gdyby ktoś rzucił okiem na kod i postarał sie mi pomóc.
Oto kod:
  1. <?
  2. $user_id = $user['user']; // przypisuje id usera.
  3.  
  4. $data = date('Y.m.d H:i'); // Aktualna data
  5. $plik_tmp = $_FILES['plik']['tmp_name'];
  6. $plik_nazwa = $_FILES['plik']['name'];
  7. $plik_rozmiar = $_FILES['plik']['size'];
  8.  
  9. if(isset($plik_tmp) && isset($plik_nazwa) && ($plik_rozmiar)){ //sprawdzamy czy wszystko jest ok z plikiem
  10. $sp = explode(".",$plik_nazwa); // funkcja explode rozdziela string wedlug jakiegoś kryterium. W tym wypadku według kropki
  11. if($sp[1] == "gif" || $sp[1] == "jpg" || $sp[1] == "jpeg" || $sp[1] == "png") { // sprawdzamy jakie rozszerzenie ma plik który wysyłamy
  12. $up = move_uploaded_file($_FILES['plik']['tmp_name'],'avatar/'.$_FILES['plik']['name']); // przenosimy plik do katalogu avatar
  13. if ($up) // jeśli przenoszenie wykonało się poprawnie
  14. {
  15.  
  16. $sciezka_do_pliku = "avatar/$plik_nazwa"; // ustawiamy ścieżke pliku
  17.  
  18. if($sp[1] == "jpeg"){ // Sprawdzamy jakie rozszerzenie miał plik i wykonujemy dla niego nowy obrazek;
  19. $img = imagecreatefromjpeg($sciezka_do_pliku);
  20. }
  21. elseif($sp[1] == "png") {
  22. $img = imagecreatefrompng($sciezka_do_pliku);
  23. }
  24. elseif($sp[1] == "jpg") {
  25. $img = imagecreatefromjpeg($sciezka_do_pliku);
  26. }
  27. elseif($sp[1] == "gif") {
  28. $img = imagecreatefromgif($sciezka_do_pliku);
  29. }
  30. else {echo "ERROR!!!";}
  31.  
  32. $a = imagesx($img); // pobieramy szerokość i wysokość
  33. $b = imagesy($img);
  34.  
  35. if($a > $b){ //Zmieniamy wielkość obrazka w tym wypadku szerokość musi być 150 a wysokość proporcjonalna.
  36. $na = 150;
  37. $nb = 150 * ($b / $a);
  38. }elseif($a < $b){
  39. $na = 150 * ($a / $b);
  40. $nb = 150;
  41. }else{
  42. $na = 150;
  43. $nb = 150;
  44. }
  45.  
  46. $new_img = imagecreatetruecolor($na, $nb); // tworzymy nowy obrazek o danych wymiarach
  47. $cz = ImageColorAllocate($new_img,8 ,24 ,40); // tworzenie koloru. atrybuty to kolejno nowy obrazek i 3 kolory RGB - Red Green Blue
  48.  
  49. ImageFill($new_img,1,1,$cz); // tworzenie tła obrazka
  50. imagecopyresampled($new_img, $img, 0, 0, 0, 0, $na, $nb, $a, $b);
  51.  
  52. unlink('avatar/$user_id.jpg'); // usuwamy poprzedni plik avataru użytkownika
  53. @imagejpeg($new_img, "avatar/".$user['user'].".jpg", 100); // cyfra 9 oznacza jakosc miniaturki, osobiscie polecam wartosc 100
  54.  
  55. $a1 = mysql_query("UPDATE spartacus_users SET avatar='1' WHERE user = ".$user['user']) or die (mysql_error());
  56.  
  57. $del = unlink('avatar/'.$_FILES['plik']['name']); //usuwamy wgrany poprzedni obrazek NIE PRZEKSZTALCONY!
  58. }
  59.  
  60. }
  61.  
  62. }
  63.  
  64. ?>


a tutaj formularz do wrzucenia
[html<form enctype="multipart/form-data" method="POST" action="?a=account">
Sciezka do avataru: <input name="plik" type="file" />

<input type="submit" value="Wyślij"></form>][/html]
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 10:49