Member 13582084 Ответов: 2

Как удалить изображение?


Productcontroller в

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit(Product product, HttpPostedFileBase file)
    {
        if (ModelState.IsValid)
        {
            Product p = new Product
            {
                Id = product.Id,
                Name = product.Name,
                Description = product.Description,
                Image = product.Image
            };

            if (file != null)
            {
                string Image = Path.Combine(Server.MapPath("~/Upload"), Path.GetFileName(file.FileName));
                file.SaveAs(Image);
                p.Image = "~/Upload/" + file.FileName;
            }

            db.Entry(p).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        else
        {
            return View(product);
        }

    }

    public ActionResult Edit(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Product product = db.Products.Find(id);
        if (product == null)
        {
            return HttpNotFound();
        }
        return View(product);
    }


Редактировать.cshtml по

@using (Html.BeginForm("Edit",
                  "Products",
                  FormMethod.Post,
                  new { enctype = "multipart/form-data" }))
     {
   @Html.AntiForgeryToken()

   <div class="form-horizontal">

       @Html.ValidationSummary(true, "", new { @class = "text-danger" })
       @Html.HiddenFor(model => model.Id)

         <div class="form-group">
           @Html.LabelFor(model => model.Image, htmlAttributes: new { @class = "control-label col-md-2" })
           <div class="col-md-10">
             <img src="@Url.Content(Model.Image)" width="150" />
           </div>
       </div>
       }


Что я уже пробовал:

Я хочу удалить картинку с помощью кнопки. Как я могу это сделать ? Я могу удалять продукты, но не могу удалять фотографии. Я могу удалять продукты с идентификатором. Я попытался сделать примеры в интернете, но не смог. Не могли бы вы привести наглядный пример?

Заранее спасибо за помощь.

F-ES Sitecore

Что вы подразумеваете под "картинкой"? Что именно вы хотите удалить?

Member 13582084

У меня есть продукт, есть 6 фотографий. Я просто хочу удалить фотографию с сайта.

2 Ответов

Рейтинг:
2

Laxmidhar tatwa technologies

сэр если вы хотите удалить из папки где вы сохраняете ниже приведен код

var filePath = Server.MapPath("~/Images/" + filename);
if(File.Exists(filePath))
{
    File.Delete(filePath);
}


Рейтинг:
0

Yuanson

Вы имели в виду просто использовать действие редактирования, чтобы изменить изображение продукта на пустое и удалить файл без удаления продукта?

если это так, то вы можете определить скрытый ввод для хранения действия удаления

@формат HTML.Скрытый("deleteImage","false")

и определите кнопку Как удалить изображение

использовать JavaScript, чтобы установить скрытое поле значение true

<script>
function DeleteImage(){
   $("#deleteImage").val('true');
   //todo:Set image src to empty
}
</script>


а затем, когда вы нажмете кнопку Опубликовать, чтобы изменить действие
public ActionResult Edit(Product product, HttpPostedFileBase file,bool deleteImage)
    {
        if (ModelState.IsValid)
        {
           if(deleteImage){
                 //todo:delete image by product.Image
                 p.Image="";
            }
        }
    }