Grazie per ques'altra soluzione, ma non é propio quella che cercavo.
Mi spiego meglio:
ora usando il tuo codice ho notato che copio per esempio il file esempio.jpg sul server senza problemi, poi se copio lo stesso file esempio.jpg me lo rinomina in esempio_1.jpg ma se provo a copiare per la terza volta il file esempio.jpg mi da un warning che mi dice che il file esiste, questo lo capito ma non so risolvere.
Ho provato a copiare per esempio il file esempio_1.jpg sul server che é già presente e ho notato che me lo rinomina giustamente in esempio_2.jpg però non é questo che esattamente volevo.
Protresti gentilmente darmi una mano nel risolvere il mio problema?
Codice attuale:
Codice PHP:
// Controllo se il file esiste metto un numero prima del punto
elseif (file_exists($target_path)) {
$FileOriginale = $fileupload_name;
$fileEsistente = fopen("$fileupload_temp", "r");
$msg = "<span class=\"TestoLinks\">Il file $fileupload_name esiste già. Rinomina il file.</span>";
fclose($fileEsistente);
//se il file esiste ed ha un nome standard tipo "esempio.txt"
//e, fondamentale, senza nessun carattere underscore ( _ )
//verrà semplicemente rinominato in "esempio_1.txt"
$f = &$fileupload_name;
if(!preg_match("/.+(_)\d*\.\w+/", $f)) {
$f = preg_replace("/(\w+)(\.\w+)/", "\${1}_1\$2", $f);
} else {
//se invece il file esiste ma ha già un nome tipo "esempio_1.txt"
//verrà rinominato aumentando progressivamente il numero che lo
//identifica. Es: esempio_2.txt, esempio_3.txt, etc...
$i = preg_match("/(.+)_(\d+)\.(.+)/", $f, $mth);
$i = $mth[2] +1;
$f = preg_replace("/(.+)(_\d+.)(.+)/", "\$1_$i.\$3", $f);
}
rename("$fileupload_temp", "./image/$fileupload_name");
$msg = "<span class=\"TestoLinks\">Il file $FileOriginale esiste già sul server ed é stato rinominato in $fileupload_name </span>";
$img = "<img src=\"./image/$fileupload_name\" width=\"120\" height=\"80\">";
}
Grazie Michel