@M-Misha-M
горе-junior, программирую на C#, изучаю .Net

Как правильно поступить з мультизагрузкой изображений?

Здравствуйте, я загружаю несколько изображений в файловую систему ( точнее сами фотки грузятся в папку, а информация о фотках храниться в БД). Вот мой мой метод в контроллере
[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(Furniture model)
        {
  if (ModelState.IsValid)
            {

                //New Files
                for (int i = 0; i < Request.Files.Count; i++)
                {
                    var file = Request.Files[i];

                    if (file != null && file.ContentLength > 0)
                    {
                        var fileName = Path.GetFileName(file.FileName);
                        FileDetail fileDetail = new FileDetail()
                        {
                            NameFile = fileName,
                            Extension = Path.GetExtension(fileName),
                            Id = Guid.NewGuid(),
                           FurnitureId = model.FurnitureId,
                          
                        };
                        var path = Path.Combine(Server.MapPath("~/Upload/"), fileDetail.Id + fileDetail.Extension);
                        file.SaveAs(path);

                        db.Entry(fileDetail).State = EntityState.Added;
                    }
                }

                db.Entry(model).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(model);

        }

и частична кода из вьюшки:
<p><b>Main Files</b></p>    
            <div class="form-group">
            @foreach (var item in Model.FileDetails)
            {


                if (item.IsMainImage == true)
                {
            <img src="~/Upload/@(item.Id + item.Extension)" />
                }


            }




            </div>


                <div class="form-group">
                    <input type="file" name="fileTwo" multiple="multiple" />
                    <ul class="attachment">
                        @foreach (var item in Model.FileDetails)
                        {
                            <li style="list-style-type:none; display:inline;">

                                <img src="~/Upload/@(item.Id + item.Extension)" />

                                <a href="javascript:void(0);" data-id="@item.Id" class="deleteItem">X</a>
                            </li>

                        }
                    </ul>

                </div>

Что я тут делаю, я гружу изображения для галереи, но одну из фоток для галереи я хочу отображать на главной странице товаров на моём сайте, соответственно делаю проверку на поле в БД, false или true оно и вот вопрос: допустим мы удаляем фотку из галереи и оно соответственно удаляет фотку на главной странице, так как одно целое всё, что можно такое придумать чтобы при удалении фотки из галереи фотка как то оставалась на главной, таблицу что ли создавать новую в БД? Подкиньте пожалуйста идей, спасибо
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Вы хотите удалить фотку, не удаляя фотку? На мой взгляд потенциальный клиент, совершая действие удаления фотки - предполагает что она удалится, а не останется на месте. Пример - я удаляю картинку, а она остается на главной. Но это все размышления из бизнес-логики и если у вас есть хорошее оправдание делать так - делайте.
Что можно сделать? Поставить поле isDeleted. На главной странице игнорировать значение этого поля и отображать картинку, а там где хотите - читать и не показывать если оно true
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы