Пример #1
0
        public async Task <IActionResult> UploadFiles(Image file, string containerName)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    // http://www.mikesdotnetting.com/article/288/asp-net-5-uploading-files-with-asp-net-mvc-6
                    // http://dotnetthoughts.net/file-upload-in-asp-net-5-and-mvc-6/
                    if (file.File.Length > 0)
                    {
                        var fileName = ContentDispositionHeaderValue.Parse(file.File.ContentDisposition).FileName.Trim('"');

                        // Extension method update RC2 has removed this
                        //await file.File.SaveAsAsync(Path.Combine(_imageServiceOptions.Value.ServerUploadFolder, fileName));
                        var container = _cloudService.GetStorageContainer(containerName);
                        await file.File.SaveInAzureAsync(container, fileName);

                        var imageDesc = new ImageDescription
                        {
                            ContentType      = file.File.ContentType,
                            FileName         = file.File.FileName,
                            ContainerName    = container.Name,
                            CreatedTimestamp = DateTime.UtcNow,
                            UpdatedTimestamp = DateTime.UtcNow,
                            Description      = file.Id
                        };

                        _repo.AddOrUpdateFileDescriptions(imageDesc);
                        var imageModel = Mapper.Map <ImageDescriptionViewModel>(imageDesc);

                        GetImageUri(imageModel);

                        return(Ok(new { Message = "Image uploaded", Image = imageModel }));
                    }
                }
                catch (Exception ex)
                {
                    _logger.LogError("Error loading Image", ex);
                    ModelState.AddModelError("", "Error loading Image");
                    return(BadRequest(new { Message = "Error loading Image" }));
                }
            }

            ModelState.AddModelError("", "Invalid Model Error");
            return(BadRequest(new { Message = "Image could not be uploaded, please try again" }));
        }