async Task <IActionResult> SaveImage(string imagePath, Size size)
        {
            if (!Request.Form.Files.Any())
            {
                _logger.LogWarning("Tried to upload image with no body/image attached");
                return(BadRequest("No Image supplied"));
            }

            // Ensure it's a valid extension
            var extension = Path.GetExtension(Request.Form.Files[0].FileName).ToLower();

            if (!(new[] { ".jpg", ".png", ".jpeg" }.Any(s => extension == s)))
            {
                return(BadRequest("File must be .jpg or .png"));
            }

            // Get Path to the speaker directory
            var path = Path.Combine("img", imagePath, Request.Form.Files[0].FileName).Replace("\\", "/").ToLower();

            using (var newStream = ResizeImage(Request.Form.Files[0].OpenReadStream(), size))
            {
                // Write It
                newStream.Position = 0;
                var result = await _imageService.StoreImage("acc", path, newStream.ToArray());

                if (result.Success)
                {
                    return(Created(result.ImageUrl, new { succeeded = result.Success }));
                }
                else
                {
                    return(BadRequest(result.Exception.Message));
                }
            }
        }
        public async Task <MediaObjectInfo> NewMediaObjectAsync(string blogid, string username, string password, MediaObject mediaObject)
        {
            await EnsureUser(username, password);

            var bits   = Convert.FromBase64String(mediaObject.bits);
            var result = await _imageService.StoreImage(mediaObject.name, bits);

            if (result.Success)
            {
                var url = result.ImageUrl;

                // Create the response
                MediaObjectInfo objectInfo = new MediaObjectInfo();
                objectInfo.url = url;

                return(objectInfo);
            }

            throw new MetaWeblogException("Failed to upload Media Object");
        }
Exemple #3
0
        public async void ShouldFailIfEmptyRequest()
        {
            var response = await _imageStorageService.StoreImage("", "", new byte[] { });

            Assert.False(response.Success);
        }