当我尝试执行以下代码时:
byte[] arr= Convert.FromBase64String("1/50/Zoolz/Win-s9u0uco8ea0(11)/349.jpg")
我收到以下错误:
输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非空白字符。
我能解决谁?
答案 0 :(得分:3)
Convert.FromBase64String
期望基本64位编码的字符串作为参数,而不是包含基本64位编码的文件的名称。
如果图像文件内容是基于64位编码的,您首先应该读取该文件,然后在该内容上调用FromBase64String
,如下所示:
string baseText = File.ReadAllText(<filename>);
byte[] imageBytes = Convert.FromBase64String(baseText);
答案 1 :(得分:2)
您没有将base64string传递给方法而是传递路径首先将图像转换为base64string,然后在该字符串上调用方法。
将图片转换为base64string
using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
var buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
string base64 = Convert.ToBase64String(buffer);
}
将base64string转换为图像
byte[] imageBytes = Convert.FromBase64String(imgBase64String);
MemoryStream ms1 = new MemoryStream(imageBytes);
Image img = Image.FromStream(ms1);
答案 2 :(得分:0)
你没有使用base 64编码的字符串,它只是一个普通的字符串。如果您尝试创建测试,可以使用以下代码将字符串转换为base64。
string stringToBeEncoded = "some string";
byte[] byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(stringToBeEncoded);
string base64String = System.Convert.ToBase64String(byteArray);