Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP base64_decode().toDataURL()_Javascript_Php_Base64_Png_Todataurl - Fatal编程技术网

Javascript PHP base64_decode().toDataURL()

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(

我有一个从Javascript函数.toDataUrl()创建的编码字符串。每次我尝试使用PHP base64_decode()将其转换为二进制文件时,它都会截断二进制文件。我已经尝试了以下各项:

//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不幸的是,这段数据是我无法发布的,因为它是一个签名。此外,我们还无法用随机签名自己复制它。