*编辑
对不起,我对这件事可能不太清楚。抛出错误的代码是:
Convert.FromBase64String(base64)除了上面的方法外,是否有另一种方法将base64字符串转换为C#中的字节?
我需要帮助使用C#进行文件转换。我正在尝试将base64字符串转换为文件并将其保存到我的桌面中。要保存的文件要么是文本、excel,要么是pdf文件。我使用的代码是:
File.WriteAllBytes(@"C:\Users\User\Desktop\{thefilename}", Convert.FromBase64String(base64));但是,我收到了一个错误:
输入不是有效的基- 64字符串,因为它包含一个非基本的64个字符、两个以上的填充字符或填充字符中的一个非法字符。
我尝试将base64保存到文本文件中,首先是,然后使用https://www.freeformatter.com/base64-encoder.html来转换它,以检查base64是否真的是正确的格式。当我这样做时,它将base64转换为它的原始文件。
我可以问一下我如何解决这个错误吗?这个错误是由C#的限制引起的还是因为我所拥有的base64?我不认为这是后者,因为我能够把它在线转换成它的实际文件。除了上面使用的方法之外,还有其他方法可以将base64转换为C#中的文件吗?
发布于 2017-12-26 09:42:45
我可能已经找到了我错误的答案。我能够通过打开保存我的base64字符串的文本文件来解决这个错误,然后通过删除填充并再次添加来更新它。步骤是这样的:
Convert.FromBase64String(base64String);我不知道是什么引起了这个问题。有人知道为什么会这样吗?或者这是Windows问题、C#问题还是两者兼而有之?
发布于 2017-12-26 07:21:45
我怀疑您的Base64String具有类似于data:image/pdf;base64的前缀。因此,在转换为字节数组之前,您应该删除它。
base64 = base64.Replace("data:image/pdf;base64,","");
File.WriteAllBytes(@"C:\Users\User\Desktop\{thefilename}", Convert.FromBase64String(base64));发布于 2017-12-26 08:49:01
如果base64字符串的长度不是4.i,e的倍数,则必须将"=“放置在字符串的右侧。
如果Base64字符串长为7个字符,则添加1 "="s
如果Base64字符串长为6个字符,则添加2 "="s
如果Base64字符串是5个字符长,那么我们的字符串已经损坏。因此,不可能出现base64字符串长度为1、5、11、16等情况。
https://stackoverflow.com/questions/47975103
复制相似问题