Лучший способ генерации уникальных имен файлов при загрузке файлов PHP

Может ли кто-нибудь предложить наилучшую практику генерации уникальных имен файлов для загрузки файлов во избежание дублирования записей?

Заранее спасибо.

Обычно я либо создаю UID, используя функцию uniqid () для имени файла, либо создаю папку с именем имени пользователя, которое загружает файл и оставляет исходное имя файла. Недостатком первого является то, что вам нужно будет сохранить исходное имя файла где-нибудь, чтобы показать пользователю.

Эта функция может помочь:

http://php.net/manual/en/function.uniqid.php

Вы также можете рассмотреть возможность использования хеша содержимого файлов, например:

http://php.net/manual/en/function.sha1-file.php

Вы можете использовать временную метку unix, когда файл был загружен. Если вы ожидаете одновременного запуска нескольких загрузок, вы можете добавить уникальный идентификатор пользователя или часть исходного имени файла.

Там tempnam и tmpfile , если вы хотите создать файлы или этот вопрос .

$ Имя пользователя. $ Метка времени. $ RandomNumber

или вы можете хэшировать это, если вы не хотите, чтобы люди знали подробности о том, когда они были загружены и кем

Что-то вроде:

 md5(date('Ymd H:i:s:u')); 

Должно работать нормально.