【发布时间】:2019-03-27 21:34:29
【问题描述】:
我正在尝试让用户将文件上传到 azure。从基于角度的页面上传到 .net 核心工作正常。它以 IFormFile 的形式出现。但是当我尝试将 IFormFile 上传到 Azure Blobs 容器时,它会引发以下错误:
这是我的代码:
Sheet data = JsonConvert.DeserializeObject<Sheet>(Request.Form["data"]);
IFormFile formFile = Request.Form.Files[0];
data.DateAdded = DateTime.Now.ToString();
if (formFile.FileName.EndsWith(".pdf"))
{
if (formFile.Length > 0)
{
//db.Sheets.Add(data);
//db.SaveChanges();
string path = data.StoreLocation.ProjectName;
CloudBlockBlob blockBlob = container.GetBlockBlobReference(path);
await blockBlob.UploadFromStreamAsync(formFile.OpenReadStream());
}
}
我认为 IFormFile 上传流在用户完全上传之前就已关闭。根据多个文档,这段代码应该可以正常工作......我确实通过首先将文件保存到文件系统来让它工作。但这增加了不必要的操作...
【问题讨论】:
-
为什么不将其读入
MemoryStream并从那里上传? -
谢谢,MemoryStream 完美运行!
标签: c# asp.net-core azure-storage azure-blob-storage