如何使用 C# 将数据库中的 base64 值转换为流
Posted
技术标签:
【中文标题】如何使用 C# 将数据库中的 base64 值转换为流【英文标题】:How to convert base64 value from a database to a stream with C# 【发布时间】:2015-10-10 00:55:57 【问题描述】:我有一些 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;
【问题讨论】:
***.com/questions/351126/convert-a-string-to-stream 和 StreamContent 将接受一个流,不一定是文件,您应该能够将结果流交给它并从那里开始。 【参考方案1】:从数据库中获取字符串后,您需要执行以下操作:
var bytes = Convert.FromBase64String(base64encodedstring);
var contents = new StreamContent(new MemoryStream(bytes));
// Whatever else needs to be done here.
【讨论】:
【参考方案2】:作为一种替代方法,它适用于大型流(保存中间字节数组):
// using System.Security.Cryptography
// and assumes the input stream is b64Stream
var stream = new CryptoStream(b64Stream, new FromBase64Transform(), CryptoStreamMode.Read);
return new StreamContent(stream);
【讨论】:
以上是关于如何使用 C# 将数据库中的 base64 值转换为流的主要内容,如果未能解决你的问题,请参考以下文章