我有一个base64编码的png,如何将图像写入PHP中的文件?

mma*_*tax 38 php png gd

当我使用base64编码时,PHP在创建图像文件(PNG)时的正确方法是什么?

我一直在玩:


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

我需要解码吗?我应该使用gd库吗?

Yev*_*yev 54

您需要使用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);
Run Code Online (Sandbox Code Playgroud)

PS我用这段代码从html画布中获取PNG图像.


Thi*_*tte 36

我最好的猜测是,你只需要调用base64_decode()就$_REQUEST['data']其写入文件之前.这应该足够了:).

  • 叹了口气,这很容易,在问这个问题之前应该这样做!谢谢. (3认同)

Chr*_*anz 6

我认为你想用base64_decode()进行解码,除非你只是像在这里一样使用它.

我确信你会在使用之前清理$ _REQUEST ['id'].