Для чего это стоит, вот метод, который я включил в свои классы загрузки файлов, чтобы убедиться, что я не перезаписываю существующие файлы.Я передаю имя загружаемого файла ($ _FILES [$ img_field] ["name"]) и каталог для сохранения файла в качестве параметров, так что это остается общим методом.
private function unique_file_upload($filename, $dir) {
$filename = preg_replace("/[^.\w]/",'_',$filename);
$filename = preg_replace("/__+/",'_',$filename);
preg_match("/^(.*)\.(\w{2,4})$/",$filename,$f);
if ( file_exists( $dir . $filename ) ) {
$num = 1;
while ( file_exists( $dir . $filename ) ) {
preg_match("/^(.*)\.(\w{2,4})$/",$filename,$f);
preg_match("/(\d+)$/",$f[1],$n);
if ($n[1]) {
$x = $n[1];
$num = $n[1] + 1;
$num .= '.';
$filename = preg_replace("/$x\./",$num,$filename);
}
else {
$filename = $f[1] . $num . '.' . $f[2];
}
}
}
return $filename;
}