Exemplo n.º 1
0
 public string TestAwsS3PostFile(IFormFile inputFile)
 {
     try
     {
         UploadFileS3.UploadFileToS3(inputFile);
         return("Process executed API POST !");
     }
     catch (Exception e)
     {
         return(e.ToString());
     }
 }
Exemplo n.º 2
0
        public async Task <IActionResult> PostImage(ImageModel model)
        {
            try
            {
                if (string.IsNullOrEmpty(model.Description) || string.IsNullOrWhiteSpace(model.Description))
                {
                    TempData["error"] = "Image description is required";
                    return(RedirectToAction("ImageUpload"));
                }
                var uploadss = Path.Combine(_env.WebRootPath, "images");
                if (model.Pictures != null)
                {
                    foreach (var pics in model.Pictures)
                    {
                        var maxSize = 500 * 1024;
                        if (pics.Length > maxSize)
                        {
                            TempData["error"] = "Image size restricted to 500KB";
                            return(RedirectToAction("ImageUpload"));
                        }
                        string fileExt = System.IO.Path.GetExtension(pics.FileName).ToLower();
                        if (pics.ContentType == "image/jpeg" || pics.ContentType == "image/png")
                        {
                            var fileName = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(pics.FileName).ToString();

                            using (var fileStream = new FileStream(Path.Combine(uploadss, fileName), FileMode.Create))
                            {
                                await pics.CopyToAsync(fileStream);
                            }

                            var imagepath = Path.Combine(uploadss, fileName);

                            string S3Bucket       = Configuration[Constants.Keys.S3BucketName];
                            string AWSProfileName = Configuration[Constants.Keys.AWSProfileName];
                            //send to s3
                            await UploadFileS3.SendS3(AWSProfileName, imagepath, S3Bucket, model.Description);

                            long filesize = pics.Length / 1024;
                            var  desc     = model.Description;

                            var modelPost = new ImageModel
                            {
                                FileSize    = filesize,
                                Description = model.Description.Trim(),
                                FileType    = pics.ContentType.ToLower(),
                                Path        = fileName.Trim()
                            };

                            string fullpath = Path.Combine(uploadss, fileName);

                            var client = _httpClientFactory.CreateClient(Constants.ClientWithToken);

                            HttpResponseMessage response = await client.PostAsJsonAsync(Constants.Routes.PostImage, modelPost);

                            if (response.IsSuccessStatusCode)
                            {
                                var UrireturnUrl = response.Headers.Location;
                                var resp         = await response.Content.ReadAsAsync <ImageModel>();
                            }
                            else
                            {
                                TempData["error"] = "An error occurred. Kindly try again";
                                return(RedirectToAction("ImageUpload"));
                            }
                        }
                        else
                        {
                            TempData["error"] = "Image type restricted to PNG or JPEG";
                            return(RedirectToAction("ImageUpload"));
                        }
                    }
                    TempData["success"] = "Image saved successfully";
                    return(RedirectToAction("Index"));
                }
                else
                {
                    TempData["error"] = "Image is required";
                    return(RedirectToAction("ImageUpload"));
                }
                TempData["error"] = "An error occurred. Kindly try again";
                return(RedirectToAction("ImageUpload"));
            }
            catch (Exception ex)
            {
                Log.Error("An error Occurred " + ex);
                TempData["error"] = "Oops. An error occurred. We are looking into it. Kindly try again. ";
                return(RedirectToAction("ImageUpload"));
            }
        }