С# MongoDB, как передать картинку в MongoDB и вытащить потом оттуда
Нужно передать картинку в поле "photo" в MongoDB, далее ее надо как-то извлечь и прочитать.
Может как то преобразовать картинку в массив байтов и передать в таком виде в MongoDB, далее извлечь через GetValue и конвертировать в изображение. Но, елси делать таким способом, то я не знаю как извлечь через foreach в виде массива байтов.
BsonDocument account = new BsonDocument {
{"_id",$"{textbox1.Text}"},
{"password", $"{textbox2.Text}"},
{"E-mail", $"{textbox3.Text}"},
{"name", $"{textbox4.Text}"},
{"age", Convert.ToInt32(age.Value)},
{"photo", //сюда вставить картинку//},
};
Ответы (1 шт):
Автор решения: VeNNoM
→ Ссылка
Получилось вот так:
byte[] array = File.ReadAllBytes("путь к файлу");
// например byte[] array = File.ReadAllBytes("C:\\Users\\user\\Desktop\\noavatar.png");
BsonDocument account = new BsonDocument {
{"_id",$"{textbox1.Text}"},
{"password", $"{textbox2.Text}"},
{"E-mail", $"{textbox3.Text}"},
{"name", $"{textbox4.Text}"},
{"age", Convert.ToInt32(age.Value)},
{"photo", array},//в поле photo я отправляю массив байтов картинки
};
collection.InsertOne(account); //отправляем в базу данных
Далее принимаем.
foreach (var doc in acc)
{
bs = doc.GetValue("photo");
}
photoimg = bs.AsByteArray;//конвертируем из BsonValue в массив байтов
MemoryStream ms = new MemoryStream(photoimg, 0, photoimg.Length);
profileimage.Image = new Bitmap(ms);// тут я присваиваю картинку пиктурбоксу
Как то так.