图片base64 上传到服务器 数据缺失

图片说明
图片说明
我在app端把blob转成base64数据,通过post请求上传jpg图片的base64数据,出现了这种情况,请问有哪些原因呢?
服务器端接的base64数据 ‘/9j/4’ 这个jpg图片的标志都没了,注意,暂时不清楚是转换过程出错,还是传输过程出错
app和服务器都是基于C#写的,图片的来源是手机连接了一个相机,从相机那里得到的blob数据

5个回答

这个还是没能查出来,改用二进制传输试试了

数据不完整或者数据编码错误。要通过原始图片和你转换之后的比较才能确定。用windiff一类的工具比较前后差异。
前者可能性大一些。如果是不全,看下你post的数据,是不是被截断了。建议你用multi-parts,不要用url-encoded

m0_37716624
秦雅酒食 回复caozhy: 我这个问题持续了一段时间,然后又恢复正常了。这样的话,你觉得哪种可能大点呢?服务器端是在刚接收到base64数据,验证数据格式的时候报错的
12 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复m0_37716624: post被截断,网络数据包被过滤、截断、编码过程被截断,数据库存储获取被截断等等
12 个月之前 回复
m0_37716624
秦雅酒食 经查看原图是正常的,请问导致数据不完整的原因有哪些呢?
12 个月之前 回复
m0_37716624
秦雅酒食 经查看原图是正常的,请问导致数据不完整的原因有哪些呢?
12 个月之前 回复

不知道你是不是用jquery post的。做网站用过ajax传,同样被截取了一部分,后来改成以下这方式就可以了,截图整个桌面都没有丢失

 $.ajax({
                            url: opinions.url,
                            data: formdata,
                            processData: false,
                            contentType: false,
                            dataType: 'json',
                            type: "POST",
                            success: function (data) { //上传成功
                                opinions.success(data);
                            }
                        });

是否存在数据库的,看看你的字段长度是不是太小了

猜测应该是编码问题,有可能是传输的编码有问题, 或者是你转换时用的编码和服务器读的编码不一样。建议你使用特定的编码(如utf-8)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!