Javascript PHP base64_decode().toDataURL()
我有一个从Javascript函数.toDataUrl()创建的编码字符串。每次我尝试使用PHP base64_decode()将其转换为二进制文件时,它都会截断二进制文件。我已经尝试了以下各项:Javascript PHP base64_decode().toDataURL(),javascript,php,base64,png,todataurl,Javascript,Php,Base64,Png,Todataurl,我有一个从Javascript函数.toDataUrl()创建的编码字符串。每次我尝试使用PHP base64_decode()将其转换为二进制文件时,它都会截断二进制文件。我已经尝试了以下各项: //First Attempt $encoded = str_replace('data:image/png;base64,', '', $sig); $decodedstring = base64_decode(str_replace(array(' ', '_'), array(
//First Attempt
$encoded = str_replace('data:image/png;base64,', '', $sig);
$decodedstring = base64_decode(str_replace(array(' ', '_'), array('+', '/'), $encoded));
$decodedstring = base64_decode(chunk_split($encoded));
//2nd attempt
$encoded = str_replace([' ','data:image/png;base64,'], ['+',''], $sig);
$decodedstring = "";
for ($i=0; $i < ceil(strlen($encoded)/256); $i++)
$decodedstring = $decodedstring . base64_decode(substr($encoded,$i*256,256));
//Other attempt
$decodedstring = base64_decode( str_replace(['data:image/png;base64,', ' '], ['','+'], $sig) );
//第一次尝试
$encoded=str_replace('data:image/png;base64','','$sig);
$decodedstring=base64_decode(str_替换(数组(''''.'''.'),数组('+','/'),$encoded));
$decodedstring=base64_解码(块分割($encoded));
//第二次尝试
$encoded=str_replace(['','data:image/png;base64'],['+',''],$sig);
$decodedstring=“”;
对于($i=0;$i
所有这些都不能生成正确的文件。还要注意的是,当我使用标准png base64在线解码器时,图像看起来100%正确,因此问题似乎发生在转换过程中
有人会有其他想法吗。我花了几天时间试图研究这一点,但运气不佳 这是我用来将通过ajax发送的数据转换为php的函数。对我来说,它总是完美无瑕
function prepare_image($string, $file_name) {
list($type, $string) = explode(';', $string);
list(, $string) = explode(',', $string);
$string = base64_decode($string);
return $string;
}
没有任何样本数据,我们无法重现问题。@Sammitch不幸的是,这段数据是我无法发布的,因为它是一个签名。此外,我们还无法用随机签名自己复制它。