PDA

View Full Version : upload fajla, promjena imena ako već postoji


silence
15-12-2007, 11:33
zanima me kako to drugi rješavaju.
evo problem .. korisnik uploada neki fajl (u mom slučaju sliku), ali slika istog naziva već postoji na serveru. da ne gnjavim usera, hoću promjeniti ime fajla koji ide na server ... e sad .... imam nešto, ali mi se ne čini baš najbolje rješenje ... možda je neko pametniji od mene u ovom slučaju ...

evo moje verzije :

$i = 0;

//ovo radi, ali nikako nije baš najpametniji potez
//trebalo bi to drugačije posložiti
while ( file_exists( $datoteka )) {

if ( $i ) {

$datoteka = substr_replace ( $datoteka, $i, strlen (nazivDatoteke ( $datoteka ))-1 ).".".ekstenzijaDatoteke ($datoteka);

} else {

$datoteka = nazivDatoteke( $datoteka )."$i.".ekstenzijaDatoteke ($datoteka);

}

echo '<br />novo ime : ',$datoteka;
$i++;

}

tsereg
15-12-2007, 12:17
-1-

Ako korisničko ime osobe koja vrši upload "tsereg", a datoteka koju taj korisnik uploada se zove "slika.gif", onda napravi konkatenaciju ta dva podatka na neki prepoznatljivi način, primjerice kao:

tsereg_slika.gif

U tom slučaju je najbolje da korisničke oznake ne sadrže znak podvlake.

Ukoliko se u bazi korisnik identificira nekim brojem (ključ u bazi ili štogod) onda je najbolje to koristiti. Npr. ako je id tog korisnika 297 onda se slika može imenovati kao:

000297_slika.gif

Ovako znaš da prvih 6 znamenaka čini ID korisnika.

Ako ti se sada javi da takva datoteka već postoji, onda je to - zapravo - problem korisnika koji je već uploadao datoteku istog imena. Možeš napraviti nekakav jednostavan file manager kroz koji će si svaki korisnik moći i brisati ili preimenovati svoje datoteke.

-2-

Alternativno, napravi u bazi podataka tablicu u kojoj će ključ biti neko auto-number polje, a koja će sadržavati polje s nazivom datoteke. U tablicu se doda zapis, datoteka spremi pod nazivom pridruženog auto-number polja, a stvarni naziv datoteke pohrani u tablicu (zajedno s nekim dodatnim podacima, poput ID-a člana koji je napravio upload, datuma i vremena uploada i sl.)

silence
15-12-2007, 12:29
-1- mi baš i ne rješava puno problema, jer je stvar o CMSu kojim manje-više upravlja jedna osoba

-2- e jesam konj, pitam tabelu "slike" koji je najviši ID i dam mu ++ i stvar rješena, pošto se neće događat da više korisnika odjednom uploada ...

.. mda .. eto kaj se desi kad čovjek ide izmišljat toplu vodu ;)