我的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.';
}
?>
我已经尝试了这些链接上描述的解决方案,但这些都不适合我
如何从 base64 数据字符串在服务器端保存 PNG 图像
如何从base64编码的jpeg创建GD图像?
可以将此图像保存到文件夹中的额外代码行是什么
$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