Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Upload plików działa, ale..., niech nazwy będą tworzone przez plik php losowe, a nie prawdziwe
in5ane
post 3.04.2007, 17:36:13
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Witam, mam problem otóż chciałem aby mój skrypt jak uploaduje tworzył samemu jakieś nazwy (np. BNJ1251BH12), a nie przesyłał z oryginalnymi nazwami, gdyż jest często problem, bo pliki powtarzają nazwy.

Oto mój skrypt:
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  4. <title>Upload pliku</title>
  5. </head>
  6. <body>
  7.  
  8. <?php
  9. if (isset($_FILES['Plik']))
  10. {
  11. preg_match("'(.*).(.*)$'i", $_FILES['Plik']['name'], $ext);
  12. if (!empty($ext[2]))
  13. {
  14. $exts=strtolower($ext[2]);
  15. if ($exts == "gif" || $exts == "jpg" || $exts == "png")
  16. {
  17. if (move_uploaded_file($_FILES['Plik']['tmp_name'],'./fotki/'.$_FILES['Plik']['name']))
  18. {
  19.  echo('Plik został przesłany prawidłowo.');
  20.  }
  21.  else
  22.  {
  23.  switch($_FILES['Plik']['error'])
  24. {
  25. case 1: echo('Przesyłany plik jest większy niż zezwala konfiguracja serwera.');break;
  26. case 2: echo('Przesyłany plik jest większy niż zezwala formularz.');break;
  27. case 3: echo('Przesłano tylko część pliku.');break;
  28. case 4: echo('Plik nie został przesłany');break;
  29. }
  30.  }
  31. }
  32. else
  33. {
  34. echo('Przesyłany plik nie jest plikiem graficznym');
  35. }
  36. }
  37. }
  38. ?>
  39.  
  40. <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
  41. <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
  42. Wskaż plik do przesłania: <input type="file" name="Plik" /><br><br>
  43. <input type="submit" value="Wyślij plik" />
  44. </form>
  45. </body>
  46. </html>


Z góry dziękuję za pomoc.

Ten post edytował in5ane 3.04.2007, 17:36:45


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
Swirek
post 3.04.2007, 17:48:42
Post #2





Grupa: Zarejestrowani
Postów: 221
Pomógł: 20
Dołączył: 4.05.2006
Skąd: Polska

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


a może dodaj aby zawsze do nazwy pliku dodawała się wartość odczytana z pola bazy albo choćby z pliku tekstowego smile.gif a wartość w pliku zwiększała o 1 co upload.
czyli będziesz miał
nazwapliku0.jpg
nazwapliku1.jpg
nazwapliku2.jpg

ale trzeba dać blokade na cyferki w nazwie dodawanego pliku.
bez tego jest możliwość że się powtórzy ;p

Ten post edytował Swirek 3.04.2007, 17:49:55


--------------------
Macho odpadacie ;) .
Go to the top of the page
+Quote Post
in5ane
post 3.04.2007, 18:59:17
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Można prosić o jakiś kod? Gdyż nie jestem bardzo zaawansowany w php. Chodzi głownie o te twoją blokadę.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
erix
post 3.04.2007, 22:29:51
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




move_uploaded_file" title="Zobacz w manualu PHP" target="_manual
Przeczytaj, po co jest drugi parametr...

Najprościej byłoby dodać czas (time" title="Zobacz w manualu PHP" target="_manual) do końcówki nazwy.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
in5ane
post 4.04.2007, 16:59:48
Post #5





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


to teraz jak zrobic zeby ta kropka byla pomiedzy rozszezeniem a nazwa

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

$new_name = date(dmy_His);
move_uploaded_file($_FILES['Plik']['tmp_name'],'./fotki/'.''.$new_name.''.''.$exts.'')

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

$exts to jest rozszerzenie.
zaznaczylem ja na czerwono pod koniec tak.
niby ta kropka tam jest (na to czerwono) ale przy uploadzie jej nie dodaje.

temat sam rozwiazalem, mozna zamknac.

Ten post edytował in5ane 4.04.2007, 15:03:49


--------------------
> > > Tworzenie stron < < <
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: 19.07.2025 - 19:37