ASP.NET WebAPI → ASP.NET Core WebAPI
移行中。。
[HttpPost("upload")] public async Task<IActionResult> Upload() { try { CloudBlobContainer vCloudBlobContainer = await GetCloudBlobContainer().ConfigureAwait(false); string boundary = GetBoundary(Request.ContentType); MultipartReader reader = new MultipartReader(boundary, Request.Body, 80 * 1024); Dictionary<string, string> sectionDictionary = new Dictionary<string, string>(); MultipartSection section; MyFile myFile; while ((section = await reader.ReadNextSectionAsync().ConfigureAwait(false)) != null) { ContentDispositionHeaderValue contentDispositionHeaderValue = section.GetContentDispositionHeader(); if (contentDispositionHeaderValue.IsFormDisposition()) { FormMultipartSection formMultipartSection = section.AsFormDataSection(); string value = await formMultipartSection.GetValueAsync().ConfigureAwait(false); sectionDictionary.Add(formMultipartSection.Name, value); } else if (contentDispositionHeaderValue.IsFileDisposition()) { myFile = JsonConvert.DeserializeObject<MyFile>(sectionDictionary.GetValueOrDefault(nameof(MyFile))); if (myFile == default(object)) { throw new InvalidOperationException(); } CloudBlockBlob cloudBlockBlob = vCloudBlobContainer.GetBlockBlobReference(myFile.RelativePath); Stream stream = await cloudBlockBlob.OpenWriteAsync().ConfigureAwait(false); FileMultipartSection fileMultipartSection = section.AsFileSection(); await cloudBlockBlob.UploadFromStreamAsync(fileMultipartSection.FileStream).ConfigureAwait(false); } } return Ok(); } catch (Exception e) { throw e; } }
Thanks!