这就是我尝试将图像上传到 Azure 博客存储,然后上传位于此处的空文件的方法。
我尝试在这里上传此图片:
CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(Accountname, KeyValue), true);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(ContainerValue);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);
using (var f = System.IO.File.Open(model.FileToUpload.FileName, FileMode.Create))
{
await blockBlob.UploadFromStreamAsync(f);
}
但是如果我尝试打开这张图片,请说这个。
从丹麦语到英语:我们无法打开此文件
最佳答案
正如Marco所说,FileMode.Create指定操作系统应该创建一个新文件。如果文件已存在,它将覆盖。 更多详情可以引用这个article 。
根据您提供的图片,您的 Blob 大小为0 B。因此,您总是无法找到该文件并打开它。 FileMode 指定操作系统应如何打开文件。
所以我建议您可以删除它并使用OpenRead打开现有文件进行阅读。您可以引用如下代码:
using (var f = System.IO.File.OpenRead(model.FileToUpload.FileName))
{
await blockBlob.UploadFromStreamAsync(f);
}
关于azure - Blob 存储中的空图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48664217/