private void HandleUploadImage(ScenicPageModel model, ScenicSpot scenicSpot, string PropertyName) { var iFormFile = (IFormFile)GetPropValue(model, PropertyName); if (iFormFile != null) { //有選擇檔案, 先檢查檔名 string filename = iFormFile.FileName; var targetFile = Path.Combine(_env.WebRootPath, "images", "scenics", iFormFile.FileName); int index = 1; while (System.IO.File.Exists(targetFile)) { //改名改到不同名稱為止 filename = String.Format("{0}_{1}.{2}", Path.GetFileNameWithoutExtension(iFormFile.FileName), index, Path.GetExtension(iFormFile.FileName)); targetFile = Path.Combine(_env.WebRootPath, "images", "scenics", filename); index++; } iFormFile.CopyTo(new FileStream(targetFile, FileMode.Create)); // 這邊要剛好 PageModel 裡面的 IFormFile 屬性名稱 與 ScenicSpot裡面的一樣 SetPropValue(model.ScenicSpot, PropertyName, filename); SetPropValue(scenicSpot, PropertyName, filename); } }
public IActionResult Save(ScenicPageModel model) { if (ModelState.IsValid) { var scenicSpot = _context.ScenicSpot.Find(model.ScenicSpot.Id); if (model.ScenicSpot.Id != 0) { if (scenicSpot == null) { return(Content("資料錯誤")); } else { scenicSpot.Name = model.ScenicSpot.Name; scenicSpot.Desc = model.ScenicSpot.Desc; scenicSpot.Seq = model.ScenicSpot.Seq; scenicSpot.UpdateTime = DateTime.Now; } } else { scenicSpot = model.ScenicSpot; scenicSpot.UpdateTime = DateTime.Now; _context.ScenicSpot.Add(scenicSpot); } HandleUploadImage(model, scenicSpot, "Cover"); HandleUploadImage(model, scenicSpot, "Pic1"); HandleUploadImage(model, scenicSpot, "Pic2"); HandleUploadImage(model, scenicSpot, "Pic3"); _context.SaveChanges(); return(RedirectToAction("Index")); } return(View("~/Areas/Admin/Views//Edit.cshtml", model.ScenicSpot.Id)); }