我有一个REST服务,它读取一个文件,并在将其转换为字节数组后将其发送到另一个控制台应用程序,然后将其转换为Base64字符串。这部分有效,但是当应用程序接收到相同的流时,它会被操纵,不再是有效的Base64字符串。一些垃圾字符被引入到流中。
将流转换回Byte时收到的异常为
输入不是有效的Base-64字符串,因为它包含非基64字符、两个以上的填充字符或填充字符中的非空白字符
服务时:
[WebGet(UriTemplate = "ReadFile/Convert", ResponseFormat = WebMessageFormat.Json)]
public string ExportToExcel()
{
string filetoexport = "D:\\SomeFile.xls";
byte[] data = File.ReadAllBytes(filetoexport);
var s = Convert.ToBase64String(data);
return s;
}
在申请时:
var client = new RestClient("http://localhost:56877/User/");
var request = new RestRequest("ReadFile/Convert", RestSharp.Method.GET);
request.AddHeader("Accept", "application/Json");
request.AddHeader("Content-Type", "application/Json");
request.OnBeforeDeserialization = resp => {resp.ContentType = "application/Json";};
var result = client.Execute(request);
byte[] d = Convert.FromBase64String(result.Content);
我们可以删除值前面不必要的字符串输入。
string convert = hdnImage.Replace("data:image/png;base64,", String.Empty);
byte[] image64 = Convert.FromBase64String(convert);
它很可能被转换为修改后的 Base64,其中 和 /
字符更改为 -
和 _
。见 http://en.wikipedia.org/wiki/Base64#Implementations_and_history
如果是这样,你需要把它改回来:
string converted = base64String.Replace('-', '+');
converted = converted.Replace('_', '/');
检查图片数据开头是否包含一些标题信息:
imageCode = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkC...
这将导致上述错误。
只要去掉前面的所有内容,包括第一个逗号,你就可以走了。
imageCode = "iVBORw0KGgoAAAANSUhEUgAAAMgAAABkC...
在使用Cordova Plugin FileReader转换pdf文件并将其发送到.Net服务器后,服务器在将base64字符串转换为字节数组时抛出错误“输入不是有效的Base-64字符串,因为它包含非base64字符、两个以上的填充字符或填充字符中的非法字符。”。 Java脚本代码: C#代码: Base64字符串开头: data:application/pdf;base64,JVBERi0xL
当我们调用时,它会抛出一个异常,说明。我能做什么?
*最后这是我在Intellij Idea控制台中的完整输出: 如果我错过了什么话请告诉我。非常感谢你的大力帮助。
我有一个带有CosmosDB输出绑定的http触发器和一个最简单的函数,如下所示。 当我执行时,我得到一个错误 异常绑定参数'Request estOutput'。System.Private.CoreLib:输入不是有效的Base-64字符串,因为它包含一个非base 64字符、两个以上的填充字符或填充字符中的非法字符 我正在使用azure函数的V2。 我已经观察到删除输出绑定是有效的。所以看起
我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!
问题内容: 我需要一个可以告诉我字符串是否包含非字母数字字符的方法。 例如,如果字符串为“ abcdef?” 或“abcdefà”,该方法必须返回true。 问题答案: 使用Apache Commons Lang: 另一种方法是遍历String的字符并检查: 您还剩下一个问题:示例字符串“abcdefà”是字母数字,因为是字母。但我认为您希望将其视为非字母数字,对吗? 因此,您可能想使用正则表达式