public async Task <IActionResult> PostHomepageCarouselMedia([FromForm] HomepageCarouselMediaModel homepageCarouselMediaModel) { var requestForm = Request.Form; var file = requestForm.Files[0]; var result = new Result <string>(); //var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); string fileNameForStorage = Guid.NewGuid().ToString(); try { //add image name to db HomepageCarouselMedia homepageCarouselMedia = new HomepageCarouselMedia { ImageUrl = $@"Images/HomepageCarouselImages/{fileNameForStorage}" }; await _context.HomepageCarouselMedia.AddAsync(homepageCarouselMedia); await _context.SaveChangesAsync(); var bucketName = "luxe_media"; GoogleCredential credential = null; using (var jsonStream = new FileStream("xxxxx.json", FileMode.Open, FileAccess.Read, FileShare.Read)) { credential = GoogleCredential.FromStream(jsonStream); } var storageClient = StorageClient.Create(credential); using (var memoryStream = new MemoryStream()) { await file.CopyToAsync(memoryStream); await storageClient.UploadObjectAsync(bucketName, $@"wwwroot/Images/HomepageCarouselImages/{fileNameForStorage}", "image/jpeg", memoryStream); } result.Data = $@"{fileNameForStorage} successfully uploaded"; } catch (Exception e) { result.ErrorMessage = e.Message; return(BadRequest(result)); } return(Ok(result)); }
public async Task <IActionResult> PostHomepageCarouselMedia([FromForm] HomepageCarouselMediaModel homepageCarouselMediaModel) { var requestForm = Request.Form; var file = requestForm.Files[0]; var result = new Result <string>(); var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); // fileName = RemoveWhitespace(fileName); try { // add image bool isStoreSuccess = await StoreImage("HomepageCarouselImages", fileName, file); if (!isStoreSuccess) { throw new Exception("Store image locally failed."); } //add image name to db HomepageCarouselMedia homepageCarouselMedia = new HomepageCarouselMedia { ImageUrl = $@"Images/HomepageCarouselImages/{fileName}" }; await _context.HomepageCarouselMedia.AddAsync(homepageCarouselMedia); await _context.SaveChangesAsync(); result.Data = $@"{fileName} successfully uploaded"; } catch (Exception e) { result.ErrorMessage = e.Message; return(BadRequest(result)); } return(Ok(result)); }