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:
<?
$user_id = $user['user']; // przypisuje id usera.
$data = date('Y.m.d H:i'); // Aktualna data $plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];
if(isset($plik_tmp) && isset($plik_nazwa) && ($plik_rozmiar)){ //sprawdzamy czy wszystko jest ok z plikiem $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);
unlink('avatar/$user_id.jpg'); // usuwamy poprzedni plik avataru użytkownika @imagejpeg($new_img, "avatar/".$user['user'].".jpg", 100); // cyfra 9 oznacza jakosc miniaturki, osobiscie polecam wartosc 100
$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]