Я получаю от клиента изображение base64, и после этого я вызываю метод base64_to_image
I через:
$barcode = base64_to_image( $barcodeBase64, ".jpg" );
, который вызывает метод:
function base64_to_image($base64_string, $type) {
$data = substr($base64_string, strpos($base64_string, ',') + 1);
if (!in_array($type, [ '.jpg', '.jpeg', '.gif', '.png' ])) {
throw new \Exception('invalid image type');
}
$data = base64_decode($data);
if ($data === false) {
throw new \Exception('base64_decode failed');
}
$fullname = time().$type;
if(file_put_contents($fullname, $data)){
$result = $fullname;
}else{
$result = "error";
}
return $result;
}
Он генерирует изображение размером ~ 3 КБ и 0w x 0h. Я не знаю почему. Base64, который достигает строки сервера, таков:
data:image/svg+xml;base64,PHN2ZyBpZD0iYmFyY29kZSIgd2lkdGg9IjQ0MnB4IiBoZWlnaHQ9Ijg3cHgiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDQyIDg3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgc3R5bGU9InRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsgZGlzcGxheTogbm9uZTsiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI0NDIiIGhlaWdodD0iODciIHN0eWxlPSJmaWxsOiNmZmZmZmY7Ii8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsIDEwKSIgc3R5bGU9ImZpbGw6IzAwMDAwMDsiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iNiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIxMiIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyMiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyNiIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIzNCIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI0NCIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI1MiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI1NiIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI2NiIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI3OCIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI4MiIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI4OCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIxMDAiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMTA0IiB5PSIwIiB3aWR0aD0iMiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjExMCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIxMTYiIHk9IjAiIHdpZHRoPSI4IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMTI2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjEzMiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIxMzYiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMTQ0IiB5PSIwIiB3aWR0aD0iNiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjE1NCIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIxNjIiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMTY2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjE3NiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIxODIiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMTg2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjE5OCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyMTAiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMjE0IiB5PSIwIiB3aWR0aD0iMiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjIyMCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyMjYiIHk9IjAiIHdpZHRoPSI4IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMjM2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjI0MiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyNDYiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMjU0IiB5PSIwIiB3aWR0aD0iNiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjI2NCIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyNzIiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMjc2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjI4NiIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIyOTgiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMzAyIiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjMwOCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIzMjAiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMzI0IiB5PSIwIiB3aWR0aD0iMiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjMzMCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIzMzYiIHk9IjAiIHdpZHRoPSI4IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMzQ2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjM1MiIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIzNTYiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMzY0IiB5PSIwIiB3aWR0aD0iNiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjM3NCIgeT0iMCIgd2lkdGg9IjIiIGhlaWdodD0iNTAiLz48cmVjdCB4PSIzNzgiIHk9IjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iMzg2IiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjM5NiIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48cmVjdCB4PSI0MDYiIHk9IjAiIHdpZHRoPSI2IiBoZWlnaHQ9IjUwIi8+PHJlY3QgeD0iNDE0IiB5PSIwIiB3aWR0aD0iMiIgaGVpZ2h0PSI1MCIvPjxyZWN0IHg9IjQxOCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iNTAiLz48dGV4dCBzdHlsZT0iZm9udDogMTVweCBtb25vc3BhY2UiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHg9IjIxMSIgeT0iNjciPjEyMzQgIDU2NzggIDkwMTIgIDM0NjUgIDc4OTAgIDEyMzQgIDU2NzggIDkwMTI8L3RleHQ+PC9nPjwvc3ZnPg==
Я что-то упустил / что-то не так?
EDIT Я могу правильно просмотреть строку base64, если Я ввел его в URL, также я дважды проверил, что это правильная строка после удаления data:image/svg+xml;base64,
, поэтому я потерян = /