图片转Base64后Ajax提交问题,困扰了一天,求大神拯救。

我的远方没有诗 2019-05-23 09:34:08
最近做高拍仪拍照上传文件的功能。遇到奇怪的情况,图片转Base64后提交到后台无法解析,
提示:因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符

看上去本就是很简单的去掉前缀:data:XXX;base64, 就可以解决,或者去掉空格、回车等。
但事实确实不行。

但奇怪的是,如果把传递到后台的Base64编码复制出来单独解析却又是合法的。

下面是代码,请大神们帮个忙
前台:
var uploadSerLast = "/M_Scan/Server/UploadBase64.asmx/SaveBase64";
var imgbase64 = "";
for (var i = 0; i < imgPathArray.length; i++) {
if (imgCheckArray[i] == 1) {
imgbase64 += (imgbase64 == "" ? "" : ",") + imgBase64Array[i];
}
}
$.ajax({
url: uploadSerLast,
type: "POST",
//dataType: "text",
//contentType: "application/json; charset=utf-8",
data: { imgbase64: imgbase64 },//获得的Base64
success: function (data) {
alert(data);
}
});

后台:
 public string SaveBase64(string imgbase64)
{
try
{
imgbase64 = imgbase64.Replace(System.Environment.NewLine, String.Empty);
imgbase64 = imgbase64.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace(" ", "");
//string[] imgBaseArr = imgBaseStr.Split(new string[] { "data:;base64," }, StringSplitOptions.RemoveEmptyEntries);
byte[] arr = Convert.FromBase64String("data:image/png;base64," + imgbase64);
return "Hello World";
}
catch (Exception err)
{
return err.Message.ToString();
}
}


后台Base64代码,贴不全见凉
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

...全文
4002 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuer629 2019-05-28
  • 打赏
  • 举报
回复
DDWoo 2019-05-27
  • 打赏
  • 举报
回复
要把byte 把在strem裡再response.write 網頁就能看到了
  • 打赏
  • 举报
回复
引用 19 楼 ywwang424 的回复:
该问题也困扰了我很久,现在我解决了,我用插件把图片当文件upload到服务器设定的目录后返回个结果值就行了,我的项目是Cordova的,这个方案希望能帮到你~
谢谢您热心回复
DiRanMo 2019-05-25
  • 打赏
  • 举报
回复
仔细看看,还是不太理解
ywwang424 2019-05-24
  • 打赏
  • 举报
回复
该问题也困扰了我很久,现在我解决了,我用插件把图片当文件upload到服务器设定的目录后返回个结果值就行了,我的项目是Cordova的,这个方案希望能帮到你~
xiaoxiangqing 2019-05-24
  • 打赏
  • 举报
回复
最简单的办法,就是转之前,把它放在后台来转一下,看转出来的东西是否一样就知道原因了
  • 打赏
  • 举报
回复
感谢楼上的各位热心回答,问题已经解决。再次感谢。散分
qq_45120679 2019-05-24
  • 打赏
  • 举报
回复
66666666666
游北亮 2019-05-23
  • 打赏
  • 举报
回复
我之前也碰到过,抓取的html无法解析,写入临时文件再读取就可以解析了。 后面在程序里逐一字节对比发现的差异。 如果要快速解决,建议你也存入临时文件。 如果要对比,应该在代码里,而不是写入文件,比如:

string str1="复制进来"; 
string str2=Request.Form["xxx"];// ajax提交的
for(var i=0;i<str1.Length && i<str2.Length;i++){
if(str1[i] != str2[i]){
// 输出2个字符的Ascii码看看差异
}
}
  • 打赏
  • 举报
回复
引用 10 楼 stherix 的回复:
[quote=引用 9 楼 我的远方没有诗 的回复:] 现在就是后台接受到的base64直接用 Convert.FromBase64String转不行,但复制到变量里,再执行就可以转。 这可能是哪里有问题呢。
保存到文件里 然后用文件对比工具,不要人眼去看 就知道问题出在哪了[/quote] 确实是用工具对比的哥。哈哈哈,我眼镜看瞎了几万个字符我也看不过来啊 哈哈 真是气人啊。昨天折腾一天。
stherix 2019-05-23
  • 打赏
  • 举报
回复
引用 9 楼 我的远方没有诗 的回复:
现在就是后台接受到的base64直接用 Convert.FromBase64String转不行,但复制到变量里,再执行就可以转。 这可能是哪里有问题呢。
保存到文件里 然后用文件对比工具,不要人眼去看 就知道问题出在哪了
  • 打赏
  • 举报
回复
引用 8 楼 正怒月神 的回复:
你调试时, 把ajax接收到的base64 与程序里的base64比对一下,应该就知道了。 对比软件很多的。 我估计应该是ajax接收到的有问题。
您说的没错,是三方对比, 第一:js前台生成的base64 第二:传递到后台后的base64 第三:用C#程序对同一个图片
var image = File.ReadAllBytes(@"D:\CameraPic\20190522171403671.jpg");
            string base64str = Convert.ToBase64String(image);
生成的base64 这三种对比下来,都是一样的。 现在就是后台接受到的base64直接用 Convert.FromBase64String转不行,但复制到变量里,再执行就可以转。 这可能是哪里有问题呢。
正怒月神 2019-05-23
  • 打赏
  • 举报
回复
你调试时, 把ajax接收到的base64 与程序里的base64比对一下,应该就知道了。 对比软件很多的。 我估计应该是ajax接收到的有问题。
stherix 2019-05-23
  • 打赏
  • 举报
回复
引用 5 楼 我的远方没有诗 的回复:
[quote=引用 4 楼 stherix 的回复:] 你把Convert.FromBase64String之前的imgbase64保存到文件里 看看里面有没有什么非法字符 你给的那段字符串没问题
奇怪就在这里,imgbase64 保存到文件里都检查了 没有特殊除了26个字母 加号 斜杠 10个数字之外的字符。 而且复制到在线解析base64中 都能成功解析。 最气人的是这个base64位的字符串,我在程序中:比如:
string str="复制进来"; 然后Convert.FromBase64String(str);
居然可以、居然可以过,。。。。。。 气人啊。 [/quote] 还是在catch里面对imgbase64进行检查下 逐个检查是否base64合法字符 既然提示有问题,肯定不会是.net bug的
  • 打赏
  • 举报
回复
就是直接接收后,运行Convert.FromBase64String提示错误,但复制到变量里一执行,却可以?这是什么原理呢。 我怀疑是编码问题,但传递到后台也没有乱码。
  • 打赏
  • 举报
回复
引用 4 楼 stherix 的回复:
你把Convert.FromBase64String之前的imgbase64保存到文件里 看看里面有没有什么非法字符 你给的那段字符串没问题
奇怪就在这里,imgbase64 保存到文件里都检查了 没有特殊除了26个字母 加号 斜杠 10个数字之外的字符。 而且复制到在线解析base64中 都能成功解析。 最气人的是这个base64位的字符串,我在程序中:比如:
string str="复制进来"; 然后Convert.FromBase64String(str);
居然可以、居然可以过,。。。。。。 气人啊。
stherix 2019-05-23
  • 打赏
  • 举报
回复
你把Convert.FromBase64String之前的imgbase64保存到文件里 看看里面有没有什么非法字符 你给的那段字符串没问题
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
byte[] arr = Convert.FromBase64String(imgbase64); 前面加那么一段东西是想干嘛,又不是要显示到网页上
不好意思,我贴的那个代码 是我乱试的,其实是不应该加前面那段,
  • 打赏
  • 举报
回复
不好意思,代码贴的有点问题,第二部分后台代码:
 public string SaveBase64(string imgbase64)
    {
        try
        {
            imgbase64 = imgbase64.Replace(System.Environment.NewLine, String.Empty);
            imgbase64 = imgbase64.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace(" ", "");
            //string[] imgBaseArr = imgBaseStr.Split(new string[] { "data:;base64," }, StringSplitOptions.RemoveEmptyEntries);
            byte[] arr = Convert.FromBase64String( imgbase64);
            return "Hello World";
        }
        catch (Exception err)
        {
            return err.Message.ToString();
        }
    }
stherix 2019-05-23
  • 打赏
  • 举报
回复
byte[] arr = Convert.FromBase64String(imgbase64); 前面加那么一段东西是想干嘛,又不是要显示到网页上
加载更多回复(3)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧