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

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

Я играл с:


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

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

3 ответов


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


вам нужно использовать 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-холст.


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

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