Задать вопрос
  • Как удалять статичные файлы в ASP.NET MVC Core?

    Предлагаю реализацию через интерфейс IHostingEnvironment. Вот примерный вариант решения.
    …
    using Microsoft.AspNetCore.Hosting;
    
    public class HomeController : Controller {
            private ApplicationContext db;
            IHostingEnvironment _appEnv;
    
            public HomeController (ApplicationContext context, IHostingEnvironment appEnvironment) {
                _context = context;
                _appEnv = appEnvironment;
            }
    
            private bool RemoveFileFromServer (string path) {
                string fullPath = _appEnv.WebRootPath + path;
                if (!System.IO.File.Exists (fullPath)) return false;
                try {
                    System.IO.File.Delete (fullPath);
                    return true;
                } catch (Exception e) {
                    //Debug.WriteLine(e.Message);
                }
                return false;
            }
    
            [HttpPost, ActionName("Delete")]
            [ValidateAntiForgeryToken]
            public async Task<IActionResult> DeleteConfirmed(int id)
            {
                var fileModel = await _context.Files.SingleOrDefaultAsync(m => m.Id == id);
                RemoveFileFromServer(fileModel.Path)
                _context.Files.Remove(fileModel);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }
    }
    Ответ написан
    Комментировать