Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Upload pliku zmiana nazwy
Forum PHP.pl > Forum > Przedszkole
bambolo
Witam mam skrypt uploadu 2 plików jak zrobic aby uploadowany plik obrazka zmienił nazwe na taki jakie jest

. $hash . ".btf") czyli drugi uploadowany a nie taki jak jest nazwa na hdd sad.gif

oto mój cały kod

http://forus.pl/upload.txt


Sory ze tak ale cały kod sie nie zmiesci na posta

smile.gif

Pozdrawiam
cornholio666
Do zmiany nazwy pliku służy rename
bambolo
fajnie smile.gif ale nie jestem bosem w tej dziedzinie sad.gif i nie wiem jak to zastosowac w tym kodzie sad.gif
cornholio666
Po move_uploaded_file musisz zrobić coś takiego:

  1. <?php
  2. $nowa_nazwa_pliku = $sciezka_do_pliku.'nowanazwa.jpg';
  3.  
  4.  rename($sciezka_do_zuploadowanego_pliku,$nowa_nazwa_pliku);
  5. ?>



Oczywiście to jest przykład, dostosuj go do swoich potrzeb.
Cienki1980
Nazwę pliku możesz zmienić już podczas uploadu.

Wystarczy podać odpowiednie wartości do funkcji move_uploaded_file

Widzę, że w kodzie właśnie tak robisz. Jeżeli nie gra Ci to sprawdź czy wszystkie wartości które wstawiasz do funkcji są takie jakie byś chciał.
bambolo
w kodzie jest tak zrobione dla tego drugiego pliku ale nie wiem jak to zrobic do uploadowanego obrazka sad.gif
Cienki1980
Dokładnie tak samo :

masz w kodzie:
  1. <?php
  2. move_uploaded_file($_FILES['img']['tmp_name'], 'obrazki/' . $_FILES['img']['name']) 
  3.  or die('Error moving image...');
  4. ?>

a zrób z tego coś takiego:
  1. <?php
  2. $nowa_nazwa_pliku='usiasia';
  3. $nowe_rozsz='bla';
  4. move_uploaded_file($_FILES['img']['tmp_name'], 'obrazki/' . $nowa_nazwa_pliku.'.'.$nowe_rozsz) 
  5.  or die('Error moving image...');
  6. ?>
bambolo
Nie działa ten kawałek sad.gif

A moze by jakos dopisac cos do tego uploadowanego obrazka tak aby nie nadpisywał juz istniejących o tej samej nazwie sad.gif jak to zrobic ?
Cienki1980
Cytat(bambolo @ 22.06.2007, 16:35:35 ) *
Nie działa ten kawałek sad.gif

A moze by jakos dopisac cos do tego uploadowanego obrazka tak aby nie nadpisywał juz istniejących o tej samej nazwie sad.gif jak to zrobic ?


No to pokaż jak zmieniłeś i podaj jaki błąd się pokazuje czy też może napisz czym objawia się niedziałanie.

Co do sprawdzania czy plik istnieje to warto zainteresować się funkcją file_exists
bambolo
Wogóle nie ładuje z tym kodem pliku na serwer sad.gif

No szkoda sad.gif a mogło być tak fajnie smile.gif
Cienki1980
Cytat(bambolo @ 23.06.2007, 16:57:56 ) *
Wogóle nie ładuje z tym kodem pliku na serwer sad.gif

No szkoda sad.gif a mogło być tak fajnie smile.gif

Fajnie by było jakbyś pokazał kod zmieniony ( może być fragment , niekoniecznie całość ).
W ciemno mogę Ci powiedzieć, żebyś sprawdził czy zmienne z nazwami pliku mają odpowiednie wartości ....

ale w ciemno to wiesz. Zamiast się użalać, pomóż nam pomóc sobie.
bambolo
Nie wiem jak moge wiecej to opisac sad.gif podany przez ciebie kod nie działa wogóle nie ładuje pliku na serwer sad.gif dlatego tez podałem link do całego pliku z kodem aby mozna było pokonbinowac a nie tylko fragment kodu smile.gif
a zmiana nazwy poprzez redirect nie działa bo trzyma safe mode mi na serwie sad.gif

Pozdrawiam
Cienki1980
Cytat(bambolo @ 25.06.2007, 11:16:54 ) *
Nie wiem jak moge wiecej to opisac sad.gif podany przez ciebie kod nie działa wogóle nie ładuje pliku na serwer sad.gif dlatego tez podałem link do całego pliku z kodem aby mozna było pokonbinowac a nie tylko fragment kodu smile.gif
a zmiana nazwy poprzez redirect nie działa bo trzyma safe mode mi na serwie sad.gif

Pozdrawiam

Echhh no nic zaczynamy od nowa.
Podałeś link do pliku i owszem, ale nie podałeś jak to zmieniłeś na proponowane przez nas rozwiązanie.

Sprawdziłeś, czy zmienne które zawierają dane do zmiany pliku mają takie wartości jak chcesz, żeby miały questionmark.gif

Pokaż jak zmieniłeś kod ( jak próbujesz zmienić kod ) a może coś podczas tych prób zrobiłeś źle.

Albo inaczej .. skoro nie chcesz tak to odpowiem CI tak:
Nie działa Ci bo masz źle to zrobione ... pokaż jak masz a poszukamy błędu.
in5ane
@bambolo: jeżeli Cię ludzie proszą o podanie błędu jaki ci wyskakuje i kodu, bądź jego kawałka to od razu powinieneś podać, a nie piszesz non stop, że nie działa. Bez kodu nikt ci w tym przypadku nie pomoże. Aha i kod wstawiaj za pomocą bbcodów PHP (wtedy kod jest czytelny i ładnie pokolorowany).
bambolo
W tym kodzie co podałes

  1. <?php
  2. $nowa_nazwa_pliku='usiasia';
  3. $nowe_rozsz='jpg';
  4. move_uploaded_file($_FILES['img']['tmp_name'], 'obrazki/' . $nowa_nazwa_pliku.'.'.$nowe_rozsz) 
  5.  or die('Error moving image...');
  6. ?>


To plik uploadowany o nazwie 01.jpg powinien bez zmian kodu wyglądać tak

http://mojserwer/obrazki/usiaasia.jpg

chyba ze sie nie rozumiem i nie wiem co znaczy $ nowe_rozsz=" ";

Plik w uploadowanym wyglądzie nie zmienia nazwy i nie ładuje go chyba na serwer sad.gif
Cienki1980
Najbardziej mi się podoba tekst "nie ładuje go chyba na serwer".

A może jednak ładuje tylko o tym nie wiesz questionmark.gif tongue.gif

  1. <?php
  2. if(($_FILES['img']['type'] == 'image/pjpeg' || $_FILES['img']['type'] == 'image/jpg' || $_FILES['img']['type'] == 'image/jpeg'|| $_FILES['img']['type'] == 'image/png'|| $_FILES['img']['type'] == 'image/gif') && $width < 300 && $height < 1300)
  3. {$nazwa="moj_plik";
  4. $rozsz="png";
  5.  move_uploaded_file($_FILES['img']['tmp_name'], 'obrazki/' . $nazwa.'.'.$rozsz) or die('Error moving image...');
  6. } else {
  7.  print('Upload obrazka nie udany ! prawdopodobnie jest za duży max 300x300 pixeli lub ni
    e posiada odpowiedniego formatu gif,jpg,png :( wejdz do panelu Twoje Punkty i Torrenty usun pozycje i zaladuj jeszcze raz
     '
    );
  8. } 
  9.  
  10.  
  11. ?>
  12.  
  13. <body>
  14. <FORM name="upload" METHOD="POST" ENCTYPE="multipart/form-data">
  15.  
  16. <table BGCOLOR="#dee4e4" width="80%" border="10" class="maintable">
  17. <tr>
  18. <td>Torrent</td>
  19. <td><input type="file" name="torrent" size=60></td>
  20. </tr>
  21. <tr> 
  22. <td>Nazwa</td>
  23. <td><input type=text name="filename" size=60 maxlength=200></td>
  24. </tr>
  25. <tr>
  26. <td>Image max 128x300 pixeli</td>
  27. <td><input type="file" name="img" size=60></td>
  28. </tr>
  29.  
  30.  <tr>
  31. <td>
  32. <input type=hidden name=user_id size=50 value=>
  33. <input type= hidden "radio" name="anonymous2" value="false" checked />
  34. <input type= hidden "radio" name="anonymous" value="true" />
  35. <input type= hidden checkbox name="autoset" value="enabled" checked></td>
  36. </tr>
  37.  
  38. <tr>
  39. <td>
  40. Opis (Obowiazkowo)
  41. </td>
  42. <td>
  43. <textarea name="info" rows="10" cols="60"></textarea>
  44. </td>
  45. </tr>
  46.  
  47. <tr>
  48. <td>&nbsp;</td>
  49. <td><input class="form_button" name="submit" type=submit value="Wyslij Plik"></td>
  50.  
  51. </tr>
  52.  
  53. </table>
  54. </FORM>
  55.  
  56. <?php
  57.  
  58.  
  59.  
  60.  
  61. ?>


To jest Twój kod obcięty ze wszystkich dodatków i zostawione jest tylko upload plików na serwer. Testowałem, u mnie działa poprawnie.
bambolo
Cytat
Najbardziej mi się podoba tekst "nie ładuje go chyba na serwer".


bo na serwerze jest prawie 10 tys fotek smile.gif jak to mam sprawdzic ?

Upload działa smile.gif ale za to do bazy zapisuje jako pierwotną nazwe czyli przed zmianą sad.gif a skrypt czyta z bazy nazwe pliku sad.gif
Cienki1980
Cytat(bambolo @ 25.06.2007, 18:11:12 ) *
bo na serwerze jest prawie 10 tys fotek smile.gif jak to mam sprawdzic ?

A np wyświetlić te zmienne, pod który próbujesz zapisać obrazek podczas jego wysyłani, a potem poszukać biggrin.gif

Cytat(bambolo @ 25.06.2007, 18:11:12 ) *
Upload działa smile.gif ale za to do bazy zapisuje jako pierwotną nazwe czyli przed zmianą sad.gif a skrypt czyta z bazy nazwe pliku sad.gif

Jakbyś nie zauważył kod który podałem w poprzedniej odpowiedzi ładuje na serwer fotki z nazwą wpisaną na sztywno moj_plik.png. Czyli działa upload i zmiana nazwy uploadowanego pliku.

Skoro działa u mnie nie widzę przeciwwskazań czemu ma nie działać u Ciebie - no chyba, że podasz konkretny błąd, lub na 100% powiesz, że pliku nie ma na serwerze.
bambolo
Pisze ze ładuje smile.gif ale problem w tym teraz ze ładuje z zmienioną nazwą smile.gif ale wyswietla link z rodzicielską nazwą czyli nie zmienia mi w bazie na nową nazwe czyli jak w przykładzie moj_pik.png sad.gif a nie wiem gdzie to zmienic zeby do bazy wpisywał tą zmieniona nazwe smile.gif

fragment kodu odpowiedzialny za wyswietlanie obrazka jest taki

  1. <img src="obrazki/<?= $r->img ?>" border="0" width="120"><BR>


i on czyta z bazy nazwe a tam jest rodzicielska smile.gif czyli taka jak był na hdd sad.gif
Cienki1980
No to trzeba było od razu, że nie zapisuje do bazy

Poszukaj w swoim kodzie takiego czegoś:
  1. <?php
  2. if( !empty($_FILES["img"]["name"]) )
  3. {
  4. $img=$_FILES["img"]["name"];
  5. }
  6. else
  7. {
  8.  $img='noimage.gif';
  9. }
  10. >
  11. ?>

i zamiast $img=$_FILES["img"]["name"]; wstaw $img=$twoja_nazwa_pliku.".".$twoje_rozszerzenie;
bambolo
Zmieniłem z

  1. <?php
  2. $img=$_FILES["img"]["name"];
  3. ?>


na

  1. <?php
  2. $img= $nazwa.".".$rozsz;
  3. ?>


I niestety nie zapisuje wogule do bazy sad.gif a na serwerze plik jest

pomocy smile.gif nie zapisuje sad.gif gdzie mam błąd sad.gif
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.