如何用c#将base64值从数据库转换为流

本文关键字:数据库 转换 何用 base64 | 更新日期: 2023-09-27 18:03:33

我有一些base64存储在数据库中(实际上是图像),需要上传到第三方。我想使用内存上传它们,而不是将它们保存为图像,然后将其发布到服务器。这里有人知道如何将base64转换为流吗?

如何修改代码:

var fileInfo = new fileInfo (fullFilePath);var fileContent = new StreamContent(fileInfo.OpenRead());

用图像文件的base64解释来填充StreamContent对象。

    private static StreamContent FileMultiPartBody(string fullFilePath)
    {
        var fileInfo = new FileInfo(fullFilePath);
        var fileContent = new StreamContent(fileInfo.OpenRead());
        // Manually wrap the string values in escaped quotes.
        fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
        {
            FileName = string.Format("'"{0}'"", fileInfo.Name),
            Name = "'"name'"",
        };
        fileContent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
        return fileContent;
    }

如何用c#将base64值从数据库转换为流

在从数据库中获得字符串后,您将希望执行如下操作:

var bytes = Convert.FromBase64String(base64encodedstring);
var contents = new StreamContent(new MemoryStream(bytes));
// Whatever else needs to be done here.

作为另一种方法,它可以很好地处理大型流(节省中间字节数组):

// using System.Security.Cryptography
// and assumes the input stream is b64Stream
var stream = new CryptoStream(b64Stream, new FromBase64Transform(), CryptoStreamMode.Read);
return new StreamContent(stream);
var stream = new MemoryStream(Convert.FromBase64String(base64));