public IActionResult OnPost(int id) { if (FileUpload != null) { var filePath = Path.Combine("./wwwroot/images/", FileUpload.FileName); using (var stream = System.IO.File.Create(filePath)) { FileUpload.CopyTo(stream); } } using (var db = new LiteDatabase(@"movieReservation.db")) { var movieCollection = db.GetCollection <Models.Movie>("Movies"); var movie = movieCollection.FindById(id); movie.Title = Movie.Title; movie.Genre = Movie.Genre; movie.Price = Movie.Price; movie.Description = Movie.Description; if (FileUpload != null) { movie.Image = FileUpload.FileName; } movieCollection.Update(movie); } return(RedirectToPage("/Movies/Index")); }
public IActionResult OnPost() { var filePath = Path.Combine("./wwwroot/images/", FileUpload.FileName); using (var stream = System.IO.File.Create(filePath)) { FileUpload.CopyTo(stream); } using (var db = new LiteDatabase(@"movieReservation.db")) { var movieCollection = db.GetCollection <Models.Movie>("Movies"); movieCollection.Insert(new Models.Movie { Title = Movie.Title, Genre = Movie.Genre, Price = Movie.Price, Description = Movie.Description, Image = FileUpload.FileName, }); } return(RedirectToPage("/Movies/Index")); }
public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { GenreChoices = _context.Genre.Select(s => new SelectListItem { Value = s.GenreID.ToString(), Text = s.Name }).ToList(); return(Page()); } if (FileUpload == null) { ModelState.AddModelError("Validation.FileUpload.FileIsBlank", "Please choose a file to upload"); GenreChoices = _context.Genre.Select(s => new SelectListItem { Value = s.GenreID.ToString(), Text = s.Name }).ToList(); return(Page()); } //Validate the Genres foreach (var genre in Genres) { if (!await _context.Genre.AnyAsync(a => a.GenreID.ToString() == genre)) { ModelState.AddModelError("Validation.Genre.IsInvalid", "An unknown Genre was provided"); } } var showpieceID = Guid.NewGuid(); var fileName = showpieceID.ToString() + ".png"; Showpiece.Slug = mtgdm.Helpers.Slugify.ToUrlSlug(Showpiece.Title); if (await _context.Showpiece.AnyAsync(a => a.Slug.Equals(Showpiece.Slug, StringComparison.OrdinalIgnoreCase) && a.ShowpieceID != Showpiece.ShowpieceID)) { ModelState.AddModelError("Validation.Title.IsUsed", $"The title '{Showpiece.Title}' has already been taken"); return(Page()); } try { using var input = new MemoryStream(); FileUpload.CopyTo(input); input.Position = 0; var bucket = _config["AWS.S3.Bucket.Content"]; var region = _config["AWS.S3.Region"]; Tinify.Key = _config["Tinify.APIKey"]; var source = Tinify.FromBuffer(input.ToArray()); //Headers aren't passing to cloudfront: https://github.com/cagataygurturk/image-resizer-service/issues/7 var head = new Dictionary <string, string>() { { "Cache-Control", "max-age=31536000" } }; await source.Store(new { service = "s3", aws_access_key_id = _config["AWS.S3.AccessKeyId"], aws_secret_access_key = _config["AWS.S3.SecretKey"], region = region, path = bucket + fileName, headers = head }); } catch (AccountException e) { // Verify your API key and account limit. ModelState.AddModelError("", e.Message); return(Page()); } catch (ClientException e) { switch (e.Status) { case 415: ModelState.AddModelError("", "File type is not supported"); return(Page()); default: ModelState.AddModelError("", e.Message); return(Page()); } } catch (ServerException e) { // Temporary issue with the Tinify API. ModelState.AddModelError("", e.Message); return(Page()); } catch (ConnectionException e) { // A network connection error occurred. ModelState.AddModelError("", e.Message); return(Page()); } catch (System.Exception e) { // Something else went wrong, unrelated to the Tinify API. ModelState.AddModelError("", e.Message); return(Page()); } if (Showpiece.Synopsis == null) { Showpiece.Synopsis = ""; } Showpiece.ShowpieceID = showpieceID; Showpiece.Created = DateTime.Now; Showpiece.Published = true; Showpiece.URL = String.Concat(_config["AWS.CloudFront.URL.Resize"], "content/", fileName); Showpiece.UserID = Guid.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var genres = Genres.Select(s => new ShowpieceToGenre() { ShowpieceToGenreID = Guid.NewGuid(), ShowpieceID = showpieceID, GenreID = Guid.Parse(s) }); await _context.ShowpieceToGenre.AddRangeAsync(genres); await _context.Showpiece.AddAsync(Showpiece); await _context.SaveChangesAsync(); return(new RedirectToPageResult("/Showpiece/View", new { name = Showpiece.Slug })); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { ModelState.AddModelError("", "One or More Fields is invalid"); return(Page()); } var ModelId = Cars.CarsModelId; var ModelName = _context.CarsModel.FindAsync(ModelId).Result; if (ModelName == null) { return(NotFound()); } if (FileUpload != null) { UploadFolder = "upload"; WebRoot = _hostingEnvironment.WebRootPath; UploadDir = System.IO.Path.Combine(WebRoot, UploadFolder); if (!Directory.Exists(UploadDir)) { Directory.CreateDirectory(UploadDir); } //long size = FileUpload.Sum(f => f.Length); //Home file upload NewString = CreateRandomString(); NewFileString = CreateRandomString(); FileName = ContentDispositionHeaderValue.Parse(FileUpload.ContentDisposition).FileName.Trim('"'); Directory.CreateDirectory(UploadDir + "/" + NewString); DynamicImageFolder = System.IO.Path.Combine(UploadDir, NewString); //var ImageFolder = UploadDir + "/" + NewString; // store final final filename string FullPath = Path.Combine(DynamicImageFolder, FileName); // create dynamic string for unique folder FileType = System.IO.Path.GetExtension(FileName); FileNameRenamed = NewFileString + FileType; if (FileUpload.Length > 0) { using (var stream = new FileStream(FullPath, FileMode.Create)) { FileUpload.CopyTo(stream); ResizeToFixedSize(FullPath, FileName); //crop the uploaded file and rename it System.IO.FileInfo fi = new System.IO.FileInfo(FullPath + FileName); // access the cropped image directory fi.MoveTo(UploadDir + "/" + NewString + "/" + NewFileString + FileType); //fi.Delete(FullPath+FileName); } } } if (MultipleFileUpload.Count > 0 && MultipleFileUpload != null) { NewThumbString = CreateRandomString(); Directory.CreateDirectory(UploadDir + "/" + NewThumbString + "/" + "thumbs"); // save Car data to DB Cars.ModelName = ModelName.Name; // Map Cars ModelName Object to CarsModel Name Object Cars.Year = ModelName.Year; Cars.UploadedDate = DateTime.Now; Cars.DisplayFileName = FileNameRenamed; Cars.FolderName = NewString; Cars.ThumbFolderName = NewThumbString; Cars.ArrayFileName = "ArrFileName"; // _context.Database.ExecuteSqlRawAsync("SET IDENTITY_INSERT [dbo].[CarImages] ON"); _context.Add(Cars); await _context.SaveChangesAsync(); //retrieve last inserted record; int counter = 0; foreach (IFormFile ModelFile in MultipleFileUpload) //Home file upload { ArrFileName = ContentDispositionHeaderValue.Parse(ModelFile.ContentDisposition).FileName.Trim('"'); ThumbImageFolder = System.IO.Path.Combine(UploadDir, NewThumbString, "thumbs"); ArrFileName = GetUniqueFileName(ArrFileName); string FullPath = Path.Combine(ThumbImageFolder, ArrFileName); // create dynamic string for unique folder //FileType = System.IO.Path.GetExtension(FileName); if (MultipleFileUpload.Count > 0) { using (var transaction = _context.Database.BeginTransaction()) { using (var stream = new FileStream(FullPath, FileMode.Create)) { ModelFile.CopyTo(stream); CarImages.ImagesName = ArrFileName; CarImages.FolderName = NewThumbString; CarImages.CarsId = GetLastCar().Id; CarImages.CreatedDate = DateTime.Now; CarImages.Cid = AutoId(); _context.Add(CarImages); await _context.SaveChangesAsync(); transaction.CommitAsync(); } } } counter++; } // _context.Remove(GetLastCar()); // await _context.SaveChangesAsync(); Message = "Successful;"; return(RedirectToPage("./Index")); } return(this.Content("Failed")); }