示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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);
        }