繁体   English   中英

如何使用 C# 使用 ASP.NET Core 6 MVC 将 Base64 / byte [] 图像上传到 Azure Blob?

[英]How to Uploading Base64 / byte[] Image to Azure Blob with ASP.NET Core 6 MVC using C#?

这是我的代码 IFormFile。

public static async Task<string> UploadFileToBlobStorage(IFormFile file)
        {
            string container = "abccontainer";
            string storageAccount_connectionString = "DefaultEndpointsProtocol=https;AccountName=abc/aXQUORlrTMNkxaUFPDDlLEW/mwe5Fihy+zl4p+ysF6Y+9JiMud8khH+AStEDb6DA==;EndpointSuffix=core.windows.net";
            BlobContainerClient blobContainerClient = new(storageAccount_connectionString, container);

            BlobClient blob = blobContainerClient.GetBlobClient(Path.GetFileName(file.FileName));

            var mimeTypes = GetFileContentType(Path.GetFileName(file.FileName));
            var header = new BlobHttpHeaders
            {
                ContentType = mimeTypes
            };

            await blob.UploadAsync(file.OpenReadStream(), header);

            return blob.Uri.AbsoluteUri;
        }

但是,我想将 bytes[] 上传到 blob 存储。 敌人,我将只传递 byte[] 数组,它应该上传。

我能怎么做 ?

public static async Task<string> UploadFileToBlobStorage(byte[] array)
        {
            return blob.Uri.AbsoluteUri;
        }

UploadAsync有一个采用BinaryData对象的重载

您应该能够像这样重写您的代码:

BlobClient blob = blobContainerClient.GetBlobClient("somename.txt"); // update as necessary

var header = new BlobHttpHeaders
{
    ContentType = "text/plain" // update as necessary
};


byte[] sourceData = getSourceData();
BinaryData uploadData = new BinaryData(sourceData);
await blob.UploadAsync(uploadData, header);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM