Первое, что нужно сделать, это настроить структуру каталогов, которая моделирует ваш вариант использования. В вашем случае у вас есть пользователь, который загружает изображение. Вероятно, у вас будет такая структура каталогов (возможно, где-то в сетевом ресурсе):
-Pictures
-UserID1
-PictureID1~^~Variant.jpg
-PictureID2~^~Variant.jpg
-UserID2
-PictureID1~^~Variant.jpg
-PictureID2~^~Variant.jpg
Картинки - просто корневой каталог для следующего.
UserID - это идентификатор пользователя базы данных.
PictureID - это просто идентификатор изображения из базы данных (при условии, что вы записали имя файла каждого загруженного изображения в базу данных).
~ ^ ~ - Это просто разделитель. Вы можете использовать один символ или последовательность символов X. Мне нравятся три символа, так как они легко обрабатываются с помощью функции split и легко различимы в имени файла.
Иногда мне нравится добавлять размер изображения в файл с именем .256.jpg или .1024.jpg.
В любом случае, все это зависит от вашего варианта использования. Самое главное - правильно настроить структуру каталогов. Это облегчит доступ к фотографиям, их обслуживание и управление ими.
Вы можете добавить любую другую необходимую вам информацию в имя файла, если оно не превышает максимальную длину имени файла в вашей системе.