Использование uniqid()
, как показано @ Middaparka , будет достаточно безопасным и лучшим способом, если вам не важно, как выглядит имя файла. Крайне маловероятно, что одному и тому же пользователю удастся сделать два одинаковых запроса с одним и тем же файлом за одну и ту же микросекунду.
Если вы хотите сохранить исходные имена файлов (которые приносят - разрешимые, но важные - проблемы с не-ASCII-символами), всегда будет безопаснее постоянно увеличивать счетчик.
1_IMG0085.JPG
2_Lilies_and_pond.JPG
3_Awesome_Party_Pic.JPG
Таким образом, нет вероятности столкновений, но такой счетчик не совсем тривиален для реализации, если вы хотите быть в безопасности гонки.
Вы создаете запись базы данных, когда пользователь загружает изображение? В этом случае вы можете использовать идентификатор из вновь созданной записи в качестве переменной счетчика.