Originariamente inviato da massimodue
come avevo letto su varie fonti la funzione sovrascrive i file se già esistono, peccato però che se il nome del file è uguale ma diversa l'estensione, ne escono fuori due se poi è uguale il nome e anche l'estensione ma cambia la dimensione allora sono tre !!!!![]()
es.
1° move_uploaded_file -> immagine.bmp 100 kbyte
2° move_uploaded_file -> immagine.jpg 200 kbyte
3° move_uploaded_file -> immagine.jpg 076 kbyre
Il fatto che su diversa estensione i file vengano considerati diversi è cosa normale.
Il fatto che nome uguale, estensione uguale ma diversa dimensione vengano considerati 2 differenti file ..... la cosa è altamente improbabile. In una directory non possono esistere 2 file con lo stesso nome (dove nome= nomefile+estensione). magari i nomi non sono propriamente uguali ma simili (ad esempio ci sono dei caratteri maiuscoli/minuscoli)etc..etc..
Ah spe... forse ho mal compreso io. tu vuooi che se uno uppa 2 file con medesimo nome, questi vengano entrambi salvati su disco e non sovrascritti l'un l'altro?
Dal percorso impostato mi sembra di capire che sei in ambiente windows, quindi niente distinzione tra maiuscole/minuscole.Originariamente inviato da massimodue
secondo voi come evito la cosa ? conoscete una funzione in grado di rinominare i file "mossi" ?
....
Puoi verificare prima di eseguire move_uploaded_file se un file con quel nome già esiste.
Se già esite un file con tale nome, aggiungi un suffisso al nome del file (Es. aggiungi un "_001").
esempio:
1.nella cartella ho i file:
immagine.bmp
pippo.jpg
2.Vado ad uppare "immagine.jpg"
a. controllo se esiste "immagine.jpg" nella cartella
b. non esiste ==> copio il file nella cartella
3. Vado ad uppare il file "immagine.jpg" (una diversa immagina rispetto all aprecedente):
a. controllo se esiste il file nella cartella
b. Il file esiste, aggiungo un suffisso al nome:==> "immagina_001.jpg"
c. controllo se già esiste un file con tale nome nella cartella
d. il file non esiste ==> Copio il file nella cartella
Un appunto:
Se stai uppando un file di nome "immagina.jpg" da 100kbyte e nella cartella esiste già un file con tale nome e tale dimensione, cosa vuoi che venga fatto?
Che la nuova immagine sia scartata, che la nuova immagine sostituisca la precedente, che la nuova immagine sia salvata con nuovo nome?