将图像上传到 Azure Blob 在 ASP.NET 中使用文件上传?

标签: Asp.net .Net C#
发布时间: 2016/7/11 20:34:39
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要允许用户指定了一个图像,需要将其上载到 Azure DB 而不是硬编码图像路径像外面所有的教程。这是到目前为止所︰

<asp:FileUpload ID="imageUploader" runat="server" />
<asp:Button ID="uploadBtn" runat="server" Text="Upload Image" class="btn btn-success btn-sm" OnClick="uploadBtn_Click" />

代码︰

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

 // Retrieve a reference to a container. 
CloudBlobContainer container = blobClient.GetContainerReference("pictures");

// Create the container if it doesn't already exist.
container.CreateIfNotExists();
container.SetPermissions(new BlobContainerPermissions
{
        PublicAccess = BlobContainerPublicAccessType.Blob
});

CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");

blockBlob.UploadFromFile(imageUploader.PostedFile.FileName, FileMode.Open);

然而这并不似乎工作。如何将图像传 azure 在 ASP.NET 中使用文件上传?

解决方法 1:

UploadFromFile 使用错误的参数。请参阅 Microsoft CloudBlockBlob.UploadFromFile。第一个参数应该是一个文件路径即 C:\Users\etc... 不只是你正在分析的文件的名称 imageUploader.PostedFile.FileName

你最有可能想要使用 UploadFromStream 像这样︰

blockBlob.UploadFromStream(imageUploader.PostedFile.InputStream);

由于有大量的不同的上传方法,您应该检查CloudBlockBlob文件。

官方微信
官方QQ群
31647020