如何测试base64字符串是否是PHP中的有效图像?
我尝试了以下代码:
function convertAndSaveLogo($data, $id){
if(isset($data->base64_image) && $data->base64_image){
$imageData = base64_decode($data->base64_image);
if($imageData){
$source = imagecreatefromstring($imageData);
if($source){
imagepng($source, getcwd()."../dir/image/".$id.".png", 5);
imagedestroy($source);
}
}
}
}
但它没有用。
答案 0 :(得分:2)
试试这个:
if(base64_encode(base64_decode($img, true)) === $img)
echo 'is a Base64-encoded string' ;
答案 1 :(得分:1)
研究两件事
如果$ data-> base64_image不包含以下内容: 'data:image / jpeg; base64,',在我的情况下,将它替换为什么工作:
//in my case base64 data resides in: \Input::all()['img_data']
$base64img = str_replace(
'data:image/jpeg;base64,',
'',
\Input::all()['img_data']
);
$data = base64_decode($base64img);
如果你保存,你也可以查看solution:
// if it returns FALSE then the uploaded file
// isn't a valid image
getimagesize($created_file);