Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Upload pliku, Automatyczna zmiana nazwy pliku jeżeli istnieje?
rysiul83
post 30.11.2008, 23:44:24
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.11.2008

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


Witam.
Mam takie pytanie. Jak stworzyć funkcję, aby sprawdzała czy nazwa upload-owanego pliku na serwerze istnieje, i jeżeli tak aby sama ją zmieniała, np poprzez dodanie na końcu 1 i kolejno 2, 3..., lub daty itp...? A dodatkowo aby tą zmienioną nazwę zapisała w bazie MySQL?
Bardzo proszę o pomoc, i szybką odpowiedź.
Pozdrawiam, rysiul83

PS.

Albo czy jest możliwe stworzenie kodu, który nadaje upload-owanym plikom jedną nazwę z kolejną wartością liczbową, np:
material00001
material00002
...itd,
tylko, aby nie zmieniał rozszerzenia i nazwę zapisywał do bazy MySQL?questionmark.gif?
Go to the top of the page
+Quote Post
erix
post 30.11.2008, 23:45:25
Post #2





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




Nie wynajduj koła na nowo - nadawaj nazwy plików na podstawie identyfikatorów z bazy. One przecież są unikalne. winksmiley.jpg


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

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
zzeus
post 1.12.2008, 08:18:41
Post #3





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Cytat(erix @ 30.11.2008, 23:45:25 ) *
Nie wynajduj koła na nowo - nadawaj nazwy plików na podstawie identyfikatorów z bazy. One przecież są unikalne. winksmiley.jpg


Rozwiązanie powyżej najlepsze, a jeśli koniecznie chcesz mieć swoje nazwy plików, to poprostu przed uploadem sprawdź za pomocą funkcji file_exists() czy plik istnieje. Jeśli funkcja zwróci true to dodaj na końcu nazwy pliku jakiś swój identyfikator (liczba, data)


--------------------
Go to the top of the page
+Quote Post
rysiul83
post 1.12.2008, 17:41:09
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.11.2008

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


A możecie mi powiedzieć jak zrobić taką funkcję aby sprawdzała czy plik istnieje i jeżeli tak to dodawała do niego na końcu kolejno 1, 2, 3... I aby dodawała to nie do rozszerzenia pliku, a przed?
Go to the top of the page
+Quote Post
bartg
post 1.12.2008, 19:50:34
Post #5





Grupa: Zarejestrowani
Postów: 225
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Sprawdz czy istnieje plik nazwa1, jak istnieje to sprawdzasz czy istnieje nazwa 2, i tak w kólko. Nazywamy to rekurencją smile.gif

Co do rozszerzenia:
  1. <?php
  2. $file='test.php';
  3. $aFile= explode('.', $file);
  4. $ext = $aFile[count($aFile)-1];
  5. unset($aFile[count($aFile)-1]);
  6. $file = join('.', $aFile).'1'.'.'.$ext;
  7. ?>

Pisane z palca

Ten post edytował bartg 1.12.2008, 22:44:05


--------------------
Go to the top of the page
+Quote Post
rysiul83
post 1.12.2008, 21:35:54
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.11.2008

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


No dobrze ale jak to sprawdzić?questionmark.gif smile.gif
Go to the top of the page
+Quote Post
zzeus
post 1.12.2008, 22:31:12
Post #7





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Cytat(rysiul83 @ 1.12.2008, 21:35:54 ) *
No dobrze ale jak to sprawdzić?questionmark.gif smile.gif


Czytaj dokładnie co Ci ludzie piszą - file_exists()

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
bartg
post 1.12.2008, 22:43:07
Post #8





Grupa: Zarejestrowani
Postów: 225
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


  1. <?php
  2. echo jest('test.php');
  3. function jest($file, $i=1, $orgfile='')
  4. {
  5.    if($orgfile=='')
  6.    {
  7.        $orgfile = $file;
  8.    }
  9.    if(file_exists($file))
  10.    {
  11.        $aFile= (array) explode('.', $orgfile);
  12.        $ext = $aFile[count($aFile)-1];
  13.        unset($aFile[count($aFile)-1]);
  14.        $file = join('.', $aFile).$i.'.'.$ext;
  15.        return jest($file, $i+1, $orgfile);
  16.    } else {
  17.        return $file;
  18.    }
  19. }
  20. ?>


Dokładnie działająca funkcja taka jak chciałeś. testowana przezemnie

PS. Pamiętaj o przycisku pomógł smile.gif

Ten post edytował bartg 1.12.2008, 22:44:39


--------------------
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: 27.04.2024 - 21:01