我正在使用以下代码
这里$ data是一个字节数组。
$decoded_data = base64_decode($data);
$im = imagecreatefromstring($decoded_data);
if ($im !== false) {
header('Content-Type: image/png');
$image_nam = "png_".time().".png";
imagepng($im, $image_nam);
imagedestroy($im);
}
但我没有得到确切的输出
答案 0 :(得分:0)
尝试使用这个简单的代码将图像保存到目录
file_put_contents('/myfolder/imageName.jpg', base64_decode($img));
你也可以试试这个
$base_to_php = explode(',', $base64Img);
$data = base64_decode($base_to_php[1]);
$filepath = "/path/imageName.png"; // or image.jpg
file_put_contents($filepath,$data);
答案 1 :(得分:0)
我建议你参考link -
这可能是base64字符串中存在元数据的问题。
根据消息来源,问题可能是由于数据:image / png; base64,包含在二进制字符串中。
二进制字符串中存在的元数据在解码后会导致无效的图像数据。您可以通过在解码字符串之前删除函数中的元数据来尝试它。
您可以使用函数并将输出写入新文件。
$position_s= strpos($base64_string , "data:image/png;base64,");
substr($base64_string, 0, $position_s) . substr($base64_string, $position_s+ strlen("data:image/png;base64,");
注意:如果您更喜欢爆炸功能,最好设置限制:
explode(',',$base64_string,2)