如何用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;
}
在从数据库中获得字符串后,您将希望执行如下操作:
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));