示例#1
0
        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"));
        }
示例#2
0
 private string GetFilePath(File file)
 {
     return(Path.Combine(Server.MapPath(filesDirectory), file.FileName + file.Extension));
 }