В этой статье я приведу пример генерации уникального имени файла средствами php. Пример короткий, но может быть полезным. Смысл кода заключается в том, чтобы проверить существование имени файла и при существовании такого имени приписать к названию префикс. Выглядеть это будет примерно так: при существовании файла name.txt будет создано имя 1_name.txt
Код оформлен в функцию:
/** * Получение уникального имени для файла * * @param string $path - путь к папке, где будет осуществлена проверка * @param string $fileName - исходное имя файла * * @return string - уникальное имя файла */ function getUniqName($path, $fileName){ $num = 1; // счетчик // проверяем, может существует уже файл с таким именем if(file_exists($path.$fileName)) { // добавляем префикс и проверяем на наличие такого имени while(file_exists($path.$num . '_' . $fileName)){ // добавляем префикс и проверяем наличие такого файла $num ++; } return $num . '_' . $fileName; }else{ return $fileName; } }
И пример использования:
// пример использования print_r (getUniqName('./files/', 'test_file.png')); // при существовании test_file.png результат будет - 1_test_file.png
Отличный подход. Я помню делал подобное, только индекс ставил в конце имени файла перед точкой. За счет этого мы получаем красивую структуру файлов в каталоге, то есть все отсортировано по имени правильно.