私のキャンバスからクライアント上の画像データを取得し、私のサーバー上に.pngとして保存したいと思います。サーバー上のキャンバスにphpキャンバス
これは、キャンバスから画像データを取得し、saveImage.phpに送信し、私のクライアントのコードです:
function render()
{
var imageData = ctx.canvas.toDataURL("image/png");
var postData = "imageData="+imageData;
var ajax = new XMLHttpRequest();
ajax.open("POST","saveImage.php",true);
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.onreadystatechange=function()
{
console.log(ajax.responseText);
}
ajax.send(postData);
}
そして、これがsaveImage.phpは、次のようになります。
<?php
if(isset($_POST["imageData"]))
{
$imageEncoded = $_POST["imageData"];
$imageDataExploded = explode(',', $imageEncoded);
$imageDecoded = base64_decode($imageDataExploded[1]);
$filename = time()."image".mt_rand();
$file = fopen("./".$filename.".png","wb");
fwrite($file, $imageDecoded);
fclose($file);
echo $filename;
exit();
}
?>
コードは実際に正常に動作しますが、私の問題は、作成されるイメージが何らかの方法で問題があるということだけです。 開こうとすると、Windowsではフォーマットをサポートしていないためイメージが表示されません。それは.pngですか?
私はここで間違っていますか?
テキストエディタまたは16進エディタでファイルのコンテキストを調べて、それを元のファイルと比較しましたか?あなたが見ている違いは何ですか? –