【发布时间】:2021-07-04 03:09:32
【问题描述】:
我正在做一个 ASP .NET Core MVC Web 应用程序。 Web 应用程序中有一个模块可以将文件上传到 Blob 存储。
以下是我用来将文件上传到 blob 存储的函数:
public CloudBlockBlob UploadBlob(string BlobName, string ContainerName, IFormFile file)
{
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(ContainerName.ToLower());
CloudBlockBlob blockBlob = container.GetBlockBlobReference(BlobName);
try
{
blockBlob.UploadFromStreamAsync((Stream) file); //trying to convert FormFile to Stream type object and upload to blob storage
return blockBlob;
}
catch (Exception e)
{
var r = e.Message;
return null;
}
}
在那里,我已经将 FormFile 对象 'file' 转换为 try 块中给出的 Stream 对象。
但不是将文件上传到 blob 存储,而是给出 Exception:
Unable to cast object of type 'Microsoft.AspNetCore.Http.FormFile' to type 'System.io.stream'
问题:
是否可以将 IFormFile 对象转换为 Stream 或者是否有其他适当的方法可以做到这一点?
谢谢。
PS: 要获取输入文件,我必须使用 FormFile 类型的对象,但要将文件上传到 blob 存储,我必须使用 Stream 类型的对象。所以,为了解决这个问题,我必须将输入的 FormFile 转换为 Stream 类型的对象。
【问题讨论】:
标签: c# asp.net-core-mvc azure-blob-storage