Не храните все изображения в одной папке; у вас будут проблемы, когда у вас будут тысячи файлов в одной папке. Было бы разумно и удобно делить создание подпапки для каждого пользователя.
Не помещайте папку в веб-доступный каталог. Вместо этого используйте промежуточный скрипт php, который принимает некоторые параметры, проверяет, имеет ли запрашивающий пользователь привилегии для просмотра файла, а затем использует readfile () для возврата изображения. Таким образом вы не позволяете людям просматривать изображения других людей.
Не используйте имя файла загруженного изображения. Вместо этого вы можете использовать идентификатор строки базы данных в качестве имени или создать UUID; что-то уникальное и сгенерированное вами. Таким образом, вам не нужно беспокоиться о том, что пользователи загружают файлы с конфликтующими именами или пытаются взломать вашу систему с помощью сумасшедших имен файлов.