Как извлечь имя / данные из базы данных и использовать его в качестве имени моей папки, которое динамически создается в asp.net C# с помощью server.MapPath()?
Я использовал AjaxFileUpload для загрузки нескольких файлов изображений. Теперь я хочу сохранить загруженные изображения в корневой папке> подпапке.
Корневая папка находится на имя пользователя. Корневая папка создается динамически, принимая сеанс пользователя, который вошел в систему, как это:
string username = Session["username"].ToString();
Я могу создать эту папку и сохранить в ней изображения. но я хочу сохранить его в подпапке.
подпапка также создается динамически, но на этот раз мне нужно взять значение (id) из базы данных и назвать папку с этим именем id. (это так, чтобы я мог обратиться к базе данных)
Я знаю, как создать новую папку с помощью Server.MapPath(); Вот код для этого вкратце
using System.IO
if (Directory.Exists(Server.MapPath(uploadPath))) return;
else Directory.CreateDirectory(Server.MapPath(uploadPath));
где uploadPath - это имя папки, которую я хочу создать динамически.
но как мне также включить подпапку в мой Server.MapPath (), чтобы сделать мой путь в качестве корневой папки / подпапки?
Небольшой пример, чтобы сделать вопрос понятным. Я продавец. Я разместил 4 объявления в Интернете. Теперь, когда я публикую свое 5-е объявление, я хочу включить много изображений. эти изображения должны быть сохранены в папке
Продавец /5/imagename.jpg. (где Продавец - имя пользователя (основная папка), 5 - идентификатор объявления в базе данных и имя подпапки)
Как мне это сделать? Пожалуйста помоги. Я использую asp.net C#
2 ответа
User Path.Combine, чтобы добавить свой root и идентификатор пользователя:
var userPath = Path.Combine(uploadPath,userID)
Это самый безопасный способ создать то, что вам нужно. Directory.CreateDirectory
Метод создаст все подпапки по мере необходимости:
var userPath = Path.Combine(uploadPath,userID)
if (Directory.Exists(Server.MapPath(userPath))) return;
else Directory.CreateDirectory(Server.MapPath(userPath));
Насколько я знаю, вы не можете сделать одно заявление, чтобы создать папку и подпапки, потому что вам нужно, чтобы папка была создана в первую очередь.
У вас есть весь необходимый код, вам просто нужно повторить его. Проверьте, существует ли основная папка (имя пользователя). Если он не создает его, если это так, проверьте, существует ли подпапка. Если это не так, создайте его.
Просто проработайте эту логику, и все будет готово.