public ActionResult Add(File model, HttpPostedFileBase file) { if (file == null || file.ContentLength <= 0) { ModelState.AddModelError(string.Empty, "Nie wybrano pliku"); return(View(model)); } if (!ModelState.IsValid) { return(View(model)); } var extension = Path.GetExtension(file.FileName); var fileName = Path.GetFileNameWithoutExtension(file.FileName); if (context.Files.Select(x => x.FileName).Contains(fileName)) { ModelState.AddModelError(string.Empty, "Plik o takiej nazwie już istnieje"); return(View(model)); } if (context.FileExtensions.Select(x => x.Extension).Contains(extension)) { model.Extension = extension; model.FileType = context.FileExtensions.Where(x => x.Extension == extension).Select(x => x.FileType).FirstOrDefault(); model.Size = file.ContentLength; model.UploadDateTime = DateTime.Now; model.FileName = fileName; model.AuthorId = WebSecurity.CurrentUserId; file.SaveAs(GetFilePath(model)); context.Files.Add(model); context.SaveChanges(); } else { ModelState.AddModelError(string.Empty, "Nie obsługiwane rozszerzenie"); return(View(model)); } return(RedirectToAction("List")); }
private string GetFilePath(File file) { return(Path.Combine(Server.MapPath(filesDirectory), file.FileName + file.Extension)); }