応答オブジェクトとして(Jsonオブジェクト内の他のものと一緒に)base64でエンコードされたjpeg画像を配信するアップロードAPIがあります。
エンコードされた画像を次のように作成します。
$im; // Gd image resource
ob_start();
imagejpeg($im);
$data = base64_encode(ob_get_clean());
次に、データはjavascriptを使用してフォームフィールド内に配置され、送信されます。
その画像を実際にファイルとして保存できるように、そこからGdリソースを再度作成するにはどうすればよいですか?
PHPのすべて。
imagecreatefromstring() 関数を使用できます:
$data = base64_decode($_POST['image_as_base64']);
$formImage = imagecreatefromstring($data);
「文字列」は「実際の」文字列を意味するものではありません。その場合、それはバイト/ブロブデータを意味します。
その画像を実際にファイルとして保存できるように、そこからGdリソースを再度作成するにはどうすればよいですか?
その余分なステップを実行する必要がありますか?どうですか:
file_put_contents('MyFile.jpg', base64_decode($_POST['MyFormField']));
私はこの方法で行いました:
// input is in format: data:image/png;base64,...
$str="data:image/png;base64,";
$data=str_replace($str,"",$_POST['image']);
$data = base64_decode($data);
file_put_contents('tmp/'.mktime().'.png', $data);