У меня есть следующий код в моем php-файле, который работает нормально, он декодирует строку base64 и показывает это как изображение на веб-странице, но я хочу, чтобы он тоже сохранялся в папке.
<?php
$base = $_POST['encoded'];
$base = base64_decode($base);
$im = imagecreatefromstring($base);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
?>
я уже пробовал решение, описанное в этих ссылках, но ни одна из них не работает для меня
Как сохранить PNG-изображение на стороне сервера, из строки данных base64
Как создать изображение GD из JPEG в кодировке base64?
какая будет дополнительная строка кода, которая может сохранить это изображение в папку
$base = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
.'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
.'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
.'8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$base = base64_decode($base);
$im = imagecreatefromstring($base);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
Ну, код работал для меня.
Если вы видите пустую страницу, это означает, что закодированная строка неверна.
Права доступа к файлу не были установлены в режим записи. установите его на 777 и протестируйте с помощью следующего кода.
<?php
$base = $_POST['encoded'];
$base = base64_decode($base);
$im = imagecreatefromstring($base);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im,'image.png'); // saving image to the same directory
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
?>
Этот код работает для изображения JPEG
$data = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHB'; // image data
define('UPLOAD_DIR','dir_path/'); // image dir path
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data); // base 64 decoding
file_put_contents(UPLOAD_DIR.$img_name.".jpeg", $data); // saving the image to required path