Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak zapobiec nadpisywaniu pliku ?
Forum PHP.pl > Forum > Przedszkole
grattz
Wysyłam plik na serwer:
  1. <?php
  2. if (isset($_FILES['Plik']))
  3. {
  4.  if (move_uploaded_file($_FILES['Plik']['tmp_name'],'./uploads/'.$_FILES['Plik']['name']))
  5. ?>

Jak zmienić nazwe pliku zapisywanego . Np tak zeby dodawał sie ID z tabeli przed nazwą pliku. ( chyba będzie to trudno uzyskać - może jakieś są inne metody ?)

A to wysyłam do MYSQL:
  1. <?php
  2. mysql_query("INSERT INTO banery VALUES('" . $_FILES['Plik']['name'] . "',NULL)")
  3. ?>
nospor
Cytat
chyba będzie to trudno uzyskać

bez przesady... ostanio dodane ID:
http://forum.php.pl/index.php?showtopic=30...;hl=ostatnie+id
grattz
Moje marne możliwości wymyśliły cos takiego :
  1. <?php
  2. if (move_uploaded_file($_FILES['Plik']['tmp_name'],'./uploads/'.printf ("%dn", mysql_insert_id()).''.$_FILES['Plik']['name']))
  3. ?>

Ane to chyba marny pomysł bo nie działa guitar.gif Dziwne bo wyświetla sie "0" na początku strony a potem - tak jak było wcześniej.
nospor
printf wyswietla informacje na ekran, stad te 0, a 0 masz dlatego, ze mysql_insert_id zapewne wywolujesz przed insertem a nie po, lub tez insert zwraca ci false.

  1. <?php
  2. //tu sobie wykonaj inserta...
  3. // a teraz lecim z pobraniem id:
  4. $id = mysql_insert_id();
  5. if (move_uploaded_file($_FILES['Plik']['tmp_name'],'./uploads/'.$id.$_FILES['Plik']['name']))
  6. //....
  7. ?>
grattz
biggrin.gif Pliki juz ładnie zapisują sie na serwerze. ID mają przed nazwą.
Problem mam tylko jeszcze by w tablicy MSQL nazwa pliku była taka sama.
Wpisałem tak:
  1. <?php
  2. mysql_query("INSERT INTO banery VALUES('". $id ."". $_FILES['Plik']['name'] . "',NULL)") or die(mysql_error());
  3. ?>

Ale nie dodaje mi ID przed nazwą pliku.
nospor
Cytat
Ale nie dodaje mi ID przed nazwą pliku.
no ba, przeciez tego id jeszcze nie masz. to id pojawia sie dopiero po wpisie do bazy smile.gif
PO wpisie do bazy mozesz zrobic np. update tego rekordu i wpisac mu juz poprawna nazwe pliku, gdyz juz wowczas bedziesz mial id

edit:
albo olac to id w bazie. wystarczy tylko nazwa bazowa. przy pobieraniu danych z bazy bedziesz lączyl to id z nazwa bazowa i juz
grattz
Zaoszczędziłeś mi czas i nerwy. To będzie najlepsze wyjście. Nie trzeba kombinować z UPDATE bazy.
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.