我想從客戶端的畫布上獲取圖像數據,並將其保存爲我的服務器上的.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?
我在做什麼錯在這裏?
您是否使用文本編輯器或十六進制編輯器查看了文件上下文,並將其與原始文件進行了比較?你看到什麼差異? –