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:
<? $user_id = $user['user']; // przypisuje id usera. $plik_tmp = $_FILES['plik']['tmp_name']; $plik_nazwa = $_FILES['plik']['name']; $plik_rozmiar = $_FILES['plik']['size']; $sp = explode(".",$plik_nazwa); // funkcja explode rozdziela string wedlug jakiegoś kryterium. W tym wypadku według kropki if($sp[1] == "gif" || $sp[1] == "jpg" || $sp[1] == "jpeg" || $sp[1] == "png") { // sprawdzamy jakie rozszerzenie ma plik który wysyłamy $up = move_uploaded_file($_FILES['plik']['tmp_name'],'avatar/'.$_FILES['plik']['name']); // przenosimy plik do katalogu avatar if ($up) // jeśli przenoszenie wykonało się poprawnie { $sciezka_do_pliku = "avatar/$plik_nazwa"; // ustawiamy ścieżke pliku if($sp[1] == "jpeg"){ // Sprawdzamy jakie rozszerzenie miał plik i wykonujemy dla niego nowy obrazek; $img = imagecreatefromjpeg($sciezka_do_pliku); } elseif($sp[1] == "png") { $img = imagecreatefrompng($sciezka_do_pliku); } elseif($sp[1] == "jpg") { $img = imagecreatefromjpeg($sciezka_do_pliku); } elseif($sp[1] == "gif") { $img = imagecreatefromgif($sciezka_do_pliku); } $a = imagesx($img); // pobieramy szerokość i wysokość $b = imagesy($img); if($a > $b){ //Zmieniamy wielkość obrazka w tym wypadku szerokość musi być 150 a wysokość proporcjonalna. $na = 150; $nb = 150 * ($b / $a); }elseif($a < $b){ $na = 150 * ($a / $b); $nb = 150; }else{ $na = 150; $nb = 150; } $new_img = imagecreatetruecolor($na, $nb); // tworzymy nowy obrazek o danych wymiarach $cz = ImageColorAllocate($new_img,8 ,24 ,40); // tworzenie koloru. atrybuty to kolejno nowy obrazek i 3 kolory RGB - Red Green Blue ImageFill($new_img,1,1,$cz); // tworzenie tła obrazka imagecopyresampled($new_img, $img, 0, 0, 0, 0, $na, $nb, $a, $b); @imagejpeg($new_img, "avatar/".$user['user'].".jpg", 100); // cyfra 9 oznacza jakosc miniaturki, osobiscie polecam wartosc 100 $a1 = mysql_query("UPDATE spartacus_users SET avatar='1' WHERE user = ".$user['user']) or die (mysql_error()); $del = unlink('avatar/'.$_FILES['plik']['name']); //usuwamy wgrany poprzedni obrazek NIE PRZEKSZTALCONY! } } } ?>
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]