Сохранить мульти изображение в базе данных MVC5 - PullRequest
0 голосов
/ 14 мая 2018

Мне нужно сохранить Multi-изображение в базе данных, теперь следующий код сохраняет только одно изображение

Controller.cs

public ActionResult Create(wood_project wood_project, HttpPostedFileBase file)
    {
        if (ModelState.IsValid)
        {
            db.wood_project.Add(wood_project);

            if (file != null)
            {
                string ImageName = System.IO.Path.GetFileName(file.FileName);
                string physicalPath = Server.MapPath("~/images/" + ImageName);
                file.SaveAs(physicalPath);
                wood_project.Img = ImageName;
            }
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(wood_project);
    }

Create.cshtml

<div class="form-group">
        Image 
        <div class="col-md-10">
            <input type="file" name="file" id="file"  multiple /> 
        </div>
    </div>

Я создаю отношения между таблицами Пожалуйста, помогите мне с кодом?

1 Ответ

0 голосов
/ 14 мая 2018

Для хранения нескольких изображений, которые относятся к одному объекту, вам потребуется реляционная схема.

Свяжите вашу таблицу "Wood_Project" с таблицей изображений, где каждая строка в таблице изображений связана с wood_project_Id.Затем вы можете сохранить файлы непосредственно в базе данных или просто сохранить имя файла и хранить все файлы в каталоге.

РЕДАКТИРОВАТЬ: Вот некоторый псевдокод C # с общей идеей, добавьте строку базы данных wood_project в базу данных, затем выполните цикл по каждому изображению и добавьте его в таблицу изображений с исходным wood_project_Id в качестве внешнего ключа:

            db.wood_project.Add(wood_project);
            db.SaveChanges();


            if (files != null && files.Count > 0)
            {
                string ImageName = System.IO.Path.GetFileName(file.FileName);
                string physicalPath = Server.MapPath("~/images/" + ImageName);
                file.SaveAs(physicalPath);

                //loop through files and add them to new table
                foreach(var file in files)
                {
                    db.MyImagesTable.Add(MyImagesTableObject()
                        {
                            wood_project_Id = wood_project.Id,
                            ImgData = file.data
                        });

                    db.SaveChanges();
                }

            }

Надеюсь, эта идея поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...