دسته بندی ها
13:21 1401/05/07

حذف تصویر موجود در مسیر wwwroot بصورت داینامیک در Asp Core

مشخصات سوال کننده :
کاربر : farhadrezazadeh     امتیاز کاربر : 3     رتبه کاربر : 136
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 1796
هوش مصنوعی

پاسخ هوش مصنوعی

برای حذف تصویر کتاب از فولدر پس از حذف رکورد کتاب از دیتابیس در ASP.NET Core، اطمینان حاصل کنید که نام تصویر به درستی به متد بارگذاری می شود و مسیر تصویر درست ساخته می شود. همچنین بررسی کنید که آیا تصویر مورد نظر در مسیر مشخص شده وجود دارد یا خیر.

در اینجا یک مثال از اینکه چطور می توان تصویر را حذف کرد، ارایه می شود:

[HttpPost, ValidateAntiForgeryToken]
public IActionResult DeleteBookPost(int BookId, BookViewModel model)
{
    if (BookId == 0)
    {
        TempData[ErrorMessage] = "عملیات با خطا مواجه شد";
        return RedirectToAction(nameof(Index));
    }
    else
    {
        try
        {
            // ساخت مسیر فایل
            var path_normal = Path.Combine(_webHostEnvironment.WebRootPath, "upload", "book", model.BookImage);

            // بررسی وجود فایل
            if (System.IO.File.Exists(path_normal))
            {
                System.IO.File.Delete(path_normal);
            }

            // حذف رکورد از دیتابیس
            _context.bookUW.DeleteById(BookId);
            _context.save();

            TempData[SuccessMessage] = "حذف اطلاعات با موفقیت انجام شد";
            return RedirectToAction(nameof(Index));
        }
        catch (Exception)
        {
            TempData[ErrorMessage] = "عملیات با خطا مواجه شد";
            return RedirectToAction(nameof(Index));
        }
    }
}

اطمینان حاصل کنید که نام تصویر در model.BookImage به درستی تنظیم شده است و همچنین پوشه upload/book قابل دسترسی و اجازه نامه های کافی برای حذف فایل ها را دارد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : hamid_b 21:01 1401/05/07

شما همونطوری که یک تصویر رو با دستور CopyTo می تونید روی روت سایت خودتون ذخیره کنید توسط دستور Delete هم میتونید تصویر رو حذف کنید.

کافیه نام تصویر رو از دیتابیس بگیرید و از دستور Delete برای حذف اون تصویر استفاده کنید.

public void deleteimage(int bookId)
{
   var getimagename = _context.bookTbl.where(b=>b.bookId == bookId).select(b=>b.ImageName).SingleOrDefault();

   if (getimagename.ImageName != "" || getimagename.ImageName != null)
   {
       var path = Path.Combine(_webHostEnvironment.WebRootPath, "upload\\imagepath\\") + deleteImg.BookImage;
   if (System.IO.File.Exists(path))
   {
      System.IO.File.Delete(path);
   }
}

در کد بالا تصاویر در wwwroot-->upload-->imagepath ذخیره شده اند.

متد بالا به صورت کلی تعریف شده و با توجه به نیاز پروژه میتونید تغییراتی در اون بدید.

به این پاسخ امتیاز بدهید    0
امتیاز: 518 رتبه: 4
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود