Обычно это нормально, но некоторым пользователям может не нравиться, когда их имя отображается, а идентификатор пользователя, являющийся первичным ключом, может иметь уязвимость, если ваш сайт не полностью защищен или если в будущем будет обнаружена уязвимость PHP. неизвестно.
Для такого рода вещей я обычно использую следующий код
$createName = date('YmdHis');
$fileType = '.jpg';
$imgName = $createName.$fileType;
Это должно дать строку типа 20110702155513.jpg - это полная дата и время, когда изображение было названо и является уникальным.
Если вы действительно хотите быть в безопасности, вы можете написать функцию обратного вызова, которая, если произошел сбой из-за того, что имя файла не было уникальным (обычно потому, что в одну секунду было 2 запроса - маловероятно, но возможно), тогда вы можете использовать резервное добавление идентификатора пользователя в середине строки или использовать откат в качестве основного метода именования, например,
if($imgName == 'inuse'){
$createName1 = date('Ym');
$createName2 = date('dHis');
$fileType = '.jpg';
$imgName = $createName1.$userId.$createName2.$fileType;
}
Это позволяет скрыть идентификатор пользователя, но полностью уникален.
* Редактировать - * другой вариант - использовать существующий формат и создать хеш MD5, код будет выглядеть примерно так:
$user_id = 'user_id';
$username = 'username';
$fileType = '.jpg';
$fileName = md5($user_id).'-'.md5($username).$fileType;
Надеюсь, это поможет