Для создания уникального имени есть спец. функция!
tempnam -- создать уникальное имя файла
Описание
string tempnam(string dir, string prefix);
Создает уникальное имя файла в указанной директории. Если директория не существует, tempnam() может сгененрировать имя файла во временной директории системы.
Возвращает новое временное имя файла, или нулевую строку при ошибке. Пример 1. tempnam()
$tmpfname = tempnam( "/tmp", "FOO" );
Еще удобно, если инфу о файле в базу кладешь, то делать именем свежесгенеренный id.
Согласен. От себя лишь добавлю, что для получения id в MySQL даже есть оператор mysql_insert_id(). Хотя тут надо учитывать, что таблицы данных могут быть разные, а директория с файлами одна!