这是我尝试将图像上传到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);
}
但如果我试图打开这张图片说出来。
从丹麦语到英语:我们无法打开此文件
答案 0 :(得分:1)
正如Marco所说,FileMode.Create指定操作系统创建新文件。如果该文件已存在,则将覆盖。 有关详细信息,请参阅此article。
根据您提供的图片,您的斑点大小 0 B 。所以,你总是找不到文件并打开它。 FileMode指定操作系统应如何打开文件。
所以我建议您删除它并使用 OpenRead 打开现有文件进行阅读。您可以参考以下代码:
using (var f = System.IO.File.OpenRead(model.FileToUpload.FileName))
{
await blockBlob.UploadFromStreamAsync(f);
}