gpt4 book ai didi

c# - 将 Base64 图像上传到 Azure Blob

转载 作者:行者123 更新时间:2023-11-28 13:12:49 24 4
gpt4 key购买 nike

我有以下 ASPX 标记:

<asp:Image ImageUrl="placeholder.png" runat="server" ID="plhdr" />

该网页允许用户上传图像,该图像通过 JavaScript 库进行处理,然后设置为上述控件的源。 JavaScript 将源设置为 Base64 字符串,如下所示:

data:image/jpeg;base64,/9j/4AAQ...

我在同一页面上有一个函数,用于将显示的图像上传到 Azure 存储,然后在 Azure SQL 中添加对其的引用。我在后面的代码中的代码是:

    StorageCredentials creden = new StorageCredentials(accountname, accesskey);
CloudStorageAccount acc = new CloudStorageAccount(creden, useHttps: true);
CloudBlobClient client = acc.CreateCloudBlobClient();
CloudBlobContainer cont = client.GetContainerReference("testcont");
cont.CreateIfNotExists();
cont.SetPermissions(new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
});
CloudBlockBlob cblob = cont.GetBlockBlobReference("cblob");

var imagesrc = plhdr.ImageUrl;

cblob.UploadFromFile(@imagesrc);

var imageUrl = cblob.Uri;

Server Error in '/' Application. Could not find a part of the path 'D:\Windows\system32\placeholder.png'. Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\Windows\system32\dist\img\fling\space.gif'.

在这一行:cblob.UploadFromFile(@imagesrc);

希望有人能指出我正确的方向。

最佳答案

根据您的描述,我们可以使用UploadFromStream(stream)将图像文件上传到azure存储,请尝试使用以下示例代码进行操作。它对我有用。

  CloudBlockBlob cblob = cont.GetBlockBlobReference("testblob");
var bytes = Convert.FromBase64String(@"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==");// without data:image/jpeg;base64 prefix, just base64 string
using (var stream = new MemoryStream(bytes))
{
cblob.UploadFromStream(stream);
}

关于c# - 将 Base64 图像上传到 Azure Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com