public async Task <string> DownloadImage(string url) { try { using (var http = new HttpClient()) { var response = await http.GetAsync(url); var imgBytes = await response.Content.ReadAsByteArrayAsync(); var contentType = response.Content.Headers.ContentType.MediaType; var img = new Contract.Models.Image() { Content = imgBytes, ContentType = contentType }; var filename = url.Split('/').Last(); return(UploadImage(img, filename)); } } catch (Exception e) { _logService.LogError(e); return(null); } }
public string UploadImage(Contract.Models.Image image, string filename) { int imgHeight = _settingsService.GetSettings <int>(nameof(Setting.ImageMaxHeight)); int imgWidth = _settingsService.GetSettings <int>(nameof(Setting.ImageMaxWidth)); var img = GetBitmapImageOfDesiredSize(image.Content, imgWidth, imgHeight); string extenstion = filename.Split('.').Last().ToLower(); string id = GenerateImageId(extenstion); _imageGateway.Insert(new Data.Models.Image() { ImageId = id, InitialFilename = filename }); ImageFormat format = ExtensionToImageFormat(extenstion); string imgPath = GetImagePathInternal(id, null); Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, IMAGES_DIR)); CreateDirectoryForPath(imgPath); using (Bitmap tempImage = new Bitmap(img)) { tempImage.Save(imgPath, format); } return(id); }
/// <summary> /// Загрузить файл /// </summary> /// <param name="file"></param> /// <returns>идентификатор загруженного файла в базе</returns> public string UploadFile(HttpPostedFile file) { var mime = file.ContentType; if (mime == MIMETYPE_JPG || mime == MIMETYPE_PNG || mime == MIMETYPE_GIF) { byte[] bytes = new byte[file.ContentLength]; file.InputStream.Read(bytes, 0, file.ContentLength); var img = new Contract.Models.Image() { Content = bytes, ContentType = file.ContentType }; return(UploadImage(img, file.FileName)); } return(string.Empty); }