У меня есть png, закодированный base64, как написать образ в файл на PHP?

Какой правильный способ в PHP создать файл изображения (PNG), когда у меня есть кодировка base64?

Я играл с:


file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);

Мне нужно декодировать? Должен ли я использовать библиотеку gd?

Ответ 1

Мое лучшее предположение состоит в том, что вам просто нужно вызвать base64_decode() на $_REQUEST['data'] перед тем, как записать его в файл. Этого должно быть достаточно:).

Ответ 2

Вам нужно использовать base64_decode(). А ТАКЖЕ. Иногда этого недостаточно. Вот вам весь код:

$img = $_POST['data'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$fileData = base64_decode($img);
//saving
$fileName = 'photo.png';
file_put_contents($fileName, $fileData);

P.S. Я использовал этот код, чтобы получить изображение PNG из html-холста.

Ответ 3

Я бы подумал, что вы хотите декодировать с base64_decode(), если только вы не используете его, как они здесь, ЗДЕСЬ.

Я уверен, что вы захотите дезинфицировать $_REQUEST ['id'] перед его использованием.