Способ, которым я занимался в прошлом, - это использовать папку базовой загрузки (скажем, загрузки) и в этой папке создать папку, используя идентификатор пользователя из БД. Таким образом, структура будет .. \ uploads \ 145 для пользователя с идентификатором пользователя 145.
Первое, что делает мой код, это проверяет, существует ли папка, и если нет, то вызывает Directory.Create () (или любой другой синтаксис) для создания папки перед загрузкой.
Дополнительная информация, которая может оказаться полезной: я также переименую файл, используя GUID, который позволяет избежать конфликтов имен, если они загружают 2 файла с одинаковым именем. Недостатком является то, что вам обычно нужно поддерживать таблицу с исходным именем файла и физическим именем файла (GUID).