Файл менеджеры в системе именуют копии чтобы их не перезаписывать, а сохранять с новым названием добавляя некий постфикс . Когда мы загружаем файл с одинаковым именем, копии названий именуются например так:
name.jpg name(1).jpg name(2).jpg name(3).jpg и т.д.
Чтобы реализовать это же на php можно сделать так:
$n = 1; while (file_exists($dst_filename)) { $pathinfo = pathinfo($dst_filename); if (preg_match('#(.+)\(\d+\)$#', $pathinfo['filename'], $matches)) { $dst_filename = $pathinfo['dirname'] . '/' . $matches[1] . '(' . $n . ')' . '.' . $pathinfo['extension']; } else { $dst_filename = $pathinfo['dirname'] . '/' . $pathinfo['filename'] . '(1)' . '.' . $pathinfo['extension']; } $n++; }