Ваш "Blob" действительно URI данных :
data:[<MIME-type>][;charset=<encoding>][;base64],<data>
Так как вам нужна только часть декодированных данных, вам нужно сделать
file_put_contents(
'image.jpg',
base64_decode(
str_replace('data:image/jpeg;base64,', '', $blob)
)
);
Но так как PHP изначально поддерживает data: // streams, вы также можете сделать это (спасибо @NikiC)
file_put_contents('image.jpg', file_get_contents($blob));
Если вышеперечисленное не работает, вы можете попробовать с GDlib:
imagejpg(
imagecreatefromstring(
base64_decode(
str_replace('data:image/jpeg;base64,', '', $blob)
)
),
'image.jpg'
);