Мне пришлось заменить пробелы символами плюс str_replace(' ', '+', $img);
, чтобы заставить это работать.
Вот полный код
$img = $_POST['img']; // Your data 'data:image/png;base64,AAAFBfj42Pj4';
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
file_put_contents('/tmp/image.png', $data);
Надеюсь, что это поможет.