From cfe38cda163fe62afd8df84f6481fc8e4a7dd16f Mon Sep 17 00:00:00 2001 From: Michael Gordeev Date: Thu, 19 Dec 2019 02:03:16 +0300 Subject: [PATCH] Added ability to upload badges images --- .../Admin/Controllers/BadgesController.cs | 32 +++++++++++++++++-- .../Areas/Admin/Views/Badges/Create.cshtml | 7 ++++ .../Areas/Admin/Views/Badges/Edit.cshtml | 7 ++++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs b/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs index f0dd133..3a6d099 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs +++ b/MyWebsite/MyWebsite/Areas/Admin/Controllers/BadgesController.cs @@ -21,8 +21,22 @@ namespace MyWebsite.Areas.Admin.Controllers View(Startup.Database.Badges.Find(id)); [HttpPost] - public IActionResult Edit(Badge model) + public IActionResult Edit(Badge model, IFormFile file = null) { + if(file != null) + { + System.Drawing.Image image = System.Drawing.Image.FromStream(file.OpenReadStream()); + if (image.Width != 64 || image.Height != 64 || !file.FileName.ToLower().EndsWith(".png")) + { + ViewData["UploadException"] = "error"; + return View(Startup.Database.Badges.Find(model.Name)); + } + using (var stream = System.IO.File.Create(Directory.GetCurrentDirectory() + "/wwwroot/images/Badges/" + file.FileName)) + file.CopyTo(stream); + + return Redirect(Request.Path.Value); + } + Startup.Database.Badges.Update(model); Startup.Database.SaveChanges(); @@ -47,8 +61,22 @@ namespace MyWebsite.Areas.Admin.Controllers View(); [HttpPost] - public IActionResult Create(Badge model) + public IActionResult Create(Badge model, IFormFile file = null) { + if (file != null) + { + System.Drawing.Image image = System.Drawing.Image.FromStream(file.OpenReadStream()); + if (image.Width != 64 || image.Height != 64 || !file.FileName.ToLower().EndsWith(".png")) + { + ViewData["UploadException"] = "error"; + return View(Startup.Database.Badges.Find(model.Name)); + } + using (var stream = System.IO.File.Create(Directory.GetCurrentDirectory() + "/wwwroot/images/Badges/" + file.FileName)) + file.CopyTo(stream); + + return Redirect(Request.Path.Value); + } + if (!ModelState.IsValid) { ModelState.AddModelError("Error", "Invalid data"); diff --git a/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml b/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml index 6a732e7..68aa1bb 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml +++ b/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Create.cshtml @@ -45,6 +45,13 @@ +
+

Upload badge image

+
+ + + +
\ No newline at end of file diff --git a/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Edit.cshtml b/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Edit.cshtml index d1152e3..2aa0103 100644 --- a/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Edit.cshtml +++ b/MyWebsite/MyWebsite/Areas/Admin/Views/Badges/Edit.cshtml @@ -45,6 +45,13 @@ +
+

Upload badge image

+
+ + + +
\ No newline at end of file