Ich möchte die Bilddaten aus meiner Leinwand auf dem Client und speichern Sie es als. Png auf meinem Server.PHP Leinwand auf dem Server
Dies ist der Code auf meinem Client, der die Bilddaten von der Leinwand bekommt und sendet sie an 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);
}
Und das ist, was saveImage.php wie folgt aussieht:
<?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();
}
?>
Der Code funktioniert eigentlich gut, mein Problem ist nur, dass die Bilder, die erstellt werden, in irgendeiner Weise fehlerhaft sind. Wenn ich versuche, einen zu öffnen, sagt Windows, dass es mir das Bild nicht zeigen kann, weil es das Format nicht unterstützt? obwohl es ein .png?
was mache ich hier falsch?
Haben Sie den Dateikontext mit einem Texteditor oder einem Hexeditor untersucht und diesen mit der Originaldatei verglichen? Was sind die Unterschiede, die du siehst? –