public async Task <IActionResult> Create([Bind("Id,Name,File")] Download_Files download_Files, IFormFile file) { if (ModelState.IsValid) { if (file == null || file.Length == 0) { download_Files.File = "emptyFile"; } else { var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "metro/Files"); if (!Directory.Exists(uploadsRootFolder)) { Directory.CreateDirectory(uploadsRootFolder); } download_Files.File = file.FileName; var filePath = Path.Combine(uploadsRootFolder, file.FileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(fileStream).ConfigureAwait(false); } } _context.Add(download_Files); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(download_Files)); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Name,File")] Download_Files download_Files, IFormFile file) { if (id != download_Files.Id) { return(NotFound()); } if (ModelState.IsValid) { try { //جهت برطرف کردن خطای سازنده باز بودن ترک قبل از عملیات پردازش EF7 var originaldownload_Files = _context.Download_Files.AsNoTracking().FirstOrDefault(p => p.Id == id); if (file != null) { var uploadsRootFolder = Path.Combine(_environment.WebRootPath, "metro/Files"); DirectoryInfo directory = new DirectoryInfo(uploadsRootFolder); //Directory.GetFiles(uploadsRootFolder + originalPerson.Image); foreach (FileInfo fileEF in directory.GetFiles()) { if (fileEF.Name.Equals(originaldownload_Files.File)) { fileEF.Delete(); } } download_Files.File = file.FileName; var filePath = Path.Combine(uploadsRootFolder, file.FileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(fileStream).ConfigureAwait(false); } } else { download_Files.File = originaldownload_Files.File; } _context.Update(download_Files); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!Download_FilesExists(download_Files.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } return(View(download_Files)); }