Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Jak zapobiec nadpisywaniu pliku ?, Unikatowe nazwy plików wgrywanych na serwer.
grattz
post 16.11.2006, 20:09:18
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 29.10.2006
Skąd: BB

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post 16.11.2006, 20:11:25
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
chyba będzie to trudno uzyskać

bez przesady... ostanio dodane ID:
http://forum.php.pl/index.php?showtopic=30...;hl=ostatnie+id


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
grattz
post 16.11.2006, 21:36:44
Post #3





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 29.10.2006
Skąd: BB

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
nospor
post 16.11.2006, 21:42:19
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
grattz
post 16.11.2006, 22:29:07
Post #5





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 29.10.2006
Skąd: BB

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
nospor
post 16.11.2006, 22:33:54
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
grattz
post 16.11.2006, 22:47:31
Post #7





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 29.10.2006
Skąd: BB

Ostrzeżenie: (0%)
-----


Zaoszczędziłeś mi czas i nerwy. To będzie najlepsze wyjście. Nie trzeba kombinować z UPDATE bazy.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:19