Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload pliku, Automatyczna zmiana nazwy pliku jeżeli istnieje?
Forum PHP.pl > Forum > PHP
rysiul83
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?
erix
Nie wynajduj koła na nowo - nadawaj nazwy plików na podstawie identyfikatorów z bazy. One przecież są unikalne. winksmiley.jpg
zzeus
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)
rysiul83
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?
bartg
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
rysiul83
No dobrze ale jak to sprawdzić?questionmark.gif smile.gif
zzeus
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
bartg
  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
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.