Как получить список изображений из GridFS? - PullRequest
0 голосов
/ 22 апреля 2019

Это представление представления, которое использует ajax для извлечения данных.

Я пытаюсь получить изображение из корзины MongoDb GridFS. Операция загрузки работает. Но проблема в том, что модель представления, которую я использую, имеет:

public User User { get; set; }
public List<IFormFile> ImageUpload { get; set; }

Я получаю пользователя из контекста БД и использую его для идентификации изображения из корзины, и я хочу вернуть его в вид из контроллера.

Следующий код моего контроллера:

public IActionResult AddEditUser(int id = 0)
        {
            if (id == 0)
            {
                return View(new UserImgBinder());
            }
            else
            {
                var userImageId = _context.User.Where(x => x.UserId.Equals(id)).Select(y => y.AvatarImg).ToString();
                var stream = ContextNew.ImagesBucket.OpenDownloadStream(new ObjectId(userImageId.ToBson()));
                var contentType = stream.FileInfo.Metadata["ContentType"].AsString;
                //File(stream, contentType);
                IFormFile file = new  FormFile(stream, 0, stream.Length,"",""); 


                var UserImgBinder = new UserImgBinder
                {
                    User = _context.User.Where(x => x.UserId.Equals(id)).FirstOrDefault(),
                    ImageUpload = file
            };
                return View(UserImgBinder);
            }

        }

Поскольку ImageUpload имеет тип List и то, что я пытаюсь передать, это не список, я получаю сообщение об ошибке.

Что мне написать, чтобы решить эту проблему? Это плохой подход? Пожалуйста помоги. Спасибо.

1 Ответ

0 голосов
/ 23 апреля 2019

Попробуйте код как:

var UserImgBinder = new UserImgBinder
{
    User = _context.User.Where(x => x.UserId.Equals(id)).FirstOrDefault(),
    ImageUpload = new List<IFormFile> {
                file
            }
};
...