我将如何调试我认为是 Base64 格式的字符串有什么问题,但在 VB 中使用下面的代码行
Dim theImage As Drawing.Image = imageUtils.Base64ToImage(teststring)
抛出以下异常?
{"Base64ToImage(): The input is not a valid Base-64 string as it contains a
non-base 64 character, more than two padding characters, or an illegal
character among the padding characters. "}
测试字符串本身太长,无法粘贴到这里;我试过但达到(很多)超过字符限制。我尝试了一些在线转换工具,但它似乎也不起作用。起初,我以为我将 ajax 调用中的字符串错误地传递给了后面的 web 方法 VB 代码……但我也尝试将字符串硬编码到函数中,但同样失败。所以,我确信字符串本身是坏数据。
看起来像:
Dim teststring = "dataImage/ png;base64,
iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAYAAADo08FDAAAgAElEQVR4Xuy9268sWbbe9UVE3i /
rvte + V....K/1Tx5/8A736wVclDQN4AAAAASUVORK5CYII="
但我也尝试删除“dataImage”部分并使用
Dim teststring =
"iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAYAAADo08FDAAAgAElEQVR4Xuy9268sWbbe9UVE3i /
rvte + V....K/1Tx5/8A736wVclDQN4AAAAASUVORK5CYII="
这并没有什么不同。
我正在使用此函数在 javascript 中获取此字符串:
btnFreeze.onclick = video.onclick = function (e) {
e.preventDefault();
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
canvas.getContext('2d').drawImage(video, 0, 0);
alert("got here");
$hfLicenseScreenshot.val(canvas.toDataURL());
$img.css("background-image", "url(" + $hfLicenseScreenshot.val() + ")");
$("#hiddenTextbox").val($hfLicenseScreenshot.val());
//$("#save").show();
return false;
};
...最终字符串来自哪里
canvas.toDataURL()
大约在该函数的一半处,有一个名为 $hfLicenseScreenshot 的隐藏字段,我从中将值保存到“隐藏”文本框中(我不知道为什么我的变量会丢失,我知道它是多余的,但这就是我保存值的原因到一个名为 hiddentextbox 的文本框。我稍后从 hiddentextbox 获取字符串,例如:
$("#hiddenTextbox").val().toString();
所以,我不知道如何调试这个基于 64 位的图像字符串。我尝试了从我的网络摄像头拍摄的不同图像,但它们都无法使用。有任何想法吗?
...我不知道它是否被序列化,因为我认为 JSON stringify 方法应该这样做。我可能在那里感到困惑。
...这是我的 ajax 调用:
$.ajax({
type: "POST",
url: "/BackCode/FirstPage.aspx/SaveData",
data: JSON.stringify({ currentData: currentData, str: makeblob(str) }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
currentData: currentData,
success: function (resp) {
resp = resp.d;
if (resp.success) {
if (typeof callback === "function")
callback.apply(this, [resp]);
load();
} else {
$.statusMessage(resp.statusMessage, "red");
}
},
error: function (jsonObject, textStatus, errorThrown) {
$.statusMessage(errorThrown, "red");
}
});
我也遇到了这个问题,它经常进入最后一个错误函数:
$.statusMessage(errorThrown, "red");
所以我也不知道我是否正确传递了它。
