如何使用PHP从base64编码的数据/字符串创建图像并将其保存到网站文件夹

如何使用PHP从base64编码的数据/字符串创建图像并将其保存到网站文件夹,php,image,base64,Php,Image,Base64,我的php文件中有以下代码,运行良好,它对base64字符串进行解码,并将其显示为网页上的图像,但我希望它也将其保存在文件夹中 <?php $base = $_POST['encoded']; $base = base64_decode($base); $im = imagecreatefromstring($base); if ($im !== false) { header('Content-Type: image/png'); imagepng($im);

我的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.';
}
?>
我已经尝试过这些链接上描述的解决方案,但这些都不适合我

可以将此图像保存到文件夹的额外代码行是什么

$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

图像PNG;具有第二个参数,即文件名/文件路径。已使用imagepng$im测试过,'image.png';如果它停止在网页上显示图像,甚至不将其保存在文件夹中,它将停止显示,这是真的,但它应该输出到与执行文件相同的目录。文件是否与运行此脚本的页面不在同一空间?是的,文件位于同一位置。但是没有在同一个目录上保存图像哦,现在我知道了。这是文件权限问题。写权限被关闭,这就是为什么它不创建图像。现在imagepng$im,'image.png';如果你创建了一个函数,你可以制作两个图像,一个保存到文件,一个显示