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" })); }