当我使用base64编码时,PHP在创建图像文件(PNG)时的正确方法是什么?
我一直在玩:
file_put_contents('/tmp/'. $_REQUEST['id'].'.png', $_REQUEST['data']);
我需要解码吗?我应该使用gd库吗?
答案 0 :(得分:51)
您需要使用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。我使用此代码从html画布获取PNG图像。
答案 1 :(得分:35)
我最好的猜测是,您只需在base64_decode()
上调用$_REQUEST['data']
,然后再将其写入文件。这应该足够了:)。
答案 2 :(得分:6)
我认为您希望使用base64_decode()进行解码,除非您只是像HERE一样使用它。
我确信你会在使用之前清理$ _REQUEST ['id']。