Zmienianie nazwy w uploadzie plików

Witam,

Mam upload plików image do 512kb. I teraz moje pytanie brzmi jak podczas uploadu zmienić nazwę pliku na taką jaką ustawie np.

$dane = mysql_fetch_array(mysql_query(“select * from zespoly ORDER BY id DESC LIMIT 1”));

$nazwa = $dane[“id”] + 1;

To co zrobić aby w tym uploadzie zmienić nazwę na $nazwa i żeby w jakiejś zmiennej mieć rozszerzenie pliku bo moja wiedza opiera się do rename ale jak zmienię nazwę pliku

przez rename to nie będę miał rozszerzenia

Upload:

$plik_tmp = $_FILES[‘plik’][‘tmp_name’];

$plik_nazwa = $_FILES[‘plik’][‘name’];

$plik_rozmiar = $_FILES[‘plik’][‘size’];

if(is_uploaded_file($plik_tmp)) {move_uploaded_file($plik_tmp, “…/img/$plik_nazwa”); }

Z góry dzięki za pomoc.

A dlaczego nie dokleisz do nazwy docelowej rozszerzenia zatem?

np.:

move_uploaded_file($plik_tmp, "../img/{$plik_nazwa}.txt");

ponieważ chce aby było takie jak na przesyłanym pliku ktoś wysyła .jpg a ja mu dam .png bez sensu nie uważasz?

Ok, teraz dopiero zrozumiałem w czym problem masz. W komórce $_FILES[‘plik’][‘name’] masz przecież oryginalną nazwę+rozszerzenie, wystarczy ją podmienić lub wyciągnąć rozszerzenie, np.:

$pi = pathinfo($_FILES['plik']['name']);

move_uploaded_file($plik_tmp, sprintf('../img/%s.%s', $_FILES['plik']['name'], $pi['extension']));

Dzięki teraz jeszcze jeśli możesz pomóż mi gdzie mam wrzucić zmienną $nazwa z nazwą pliku

Niby z php słaby nie jestem a operacji na plikach nigdy nie robiłem :slight_smile:

Ale co Ty chcesz osiągnąć, bo się pogubiłem :wink: Chcesz zmienić nazwę wgrywanemu plikowi zachowując oryginalne rozszerzenie tak?

$pi = pathinfo($_FILES['plik']['name']);

move_uploaded_file($plik_tmp, sprintf('../img/%s.%s', $twoja_nazwa, $pi['extension']));

Tak Dzięki Wielkie za pomoc.

Dodane 02.08.2013 (Pt) 15:04

Albo jednak jeszcze jedno małe pytanie

Jak z tego kodu poniżej wyciągnąć jedną zmienną która będzie miała i nazwę i rozszerzenie bo muszę całą nazwę pliku łącznie z rozszerzeniem dodać do bazy danych.

$pi = pathinfo($_FILES[‘plik’][‘name’]);

if(is_uploaded_file($plik_tmp)) {move_uploaded_file($plik_tmp, sprintf(’…/img/%s.%s’, $nazwa, $pi[‘extension’]));}

Dodane 02.08.2013 (Pt) 15:35

Pomoże ktoś???

Dodane 02.08.2013 (Pt) 16:29

Rozwiązanie i sarkastycznie dziękuje za pomoc z ostatnim problemem.

$pelna_nazwa = ‘’.$nazwa.’.’.$pi[‘extension’].’’;

Temat rozwiązany.