private static string getImageUrl(Data.Models.Media media, string type) { var baseUrl = Path.Combine(Environment.GetEnvironmentVariable("STATIC_BASE_URL"), "Images"); if (type == MediaSize.Original) { return(Path.Combine(baseUrl, media.LocalFilename)); } if (MediaSize.Compare(media.LargestResize, type) >= 0) { return(Path.Combine(baseUrl, type, media.LocalFilename)); } return(null); }
public async Task <IActionResult> Create([FromForm] IFormFile file) { var baseUrl = Path.Combine(Environment.GetEnvironmentVariable("STATIC_BASE_URL"), "Images"); var basePath = Path.Combine(Environment.GetEnvironmentVariable("STATIC_BASE_PATH"), "Images"); var newMedia = new Data.Models.Media { OriginalFilename = file.FileName, Caption = file.FileName, }; using (var memoryStream = new MemoryStream()) { file.CopyTo(memoryStream); memoryStream.Position = 0; using (var image = await Media.ImageOperations.Load(memoryStream)) { image.FileName = $"{Guid.NewGuid()}.{image.Extension}"; newMedia.MimeType = image.MimeType; newMedia.LocalFilename = image.FileName; newMedia.LargestResize = await Media.ImageOperations.SaveVariants(image, basePath); } } _context.Medias.Add(newMedia); _context.SaveChanges(); return(Ok(new MediaSummary { Id = newMedia.Id, Caption = "Image number " + 0, Credit = "Nathan", CreditUrl = "https://leggonews.com", OriginalUrl = Path.Combine(baseUrl, newMedia.LocalFilename), ThumbnailUrl = Path.Combine(baseUrl, "thumbnail", newMedia.LocalFilename), SmallSizeUrl = Path.Combine(baseUrl, "small", newMedia.LocalFilename), MediumSizeUrl = Path.Combine(baseUrl, "medium", newMedia.LocalFilename), LargeSizeUrl = Path.Combine(baseUrl, "large", newMedia.LocalFilename), })); }