我正在使用Nihilogic的「Canvas2Image」JavaScript工具將畫布圖形轉換爲PNG圖像。 現在我需要的是使用PHP將這個工具生成的base64字符串轉換爲服務器上的實際PNG文件。如何從base64數據字符串中保存PNG圖像服務器端
總之,就是我目前做的是產生於使用Canvas2Image客戶端文件,然後檢索base64編碼數據,並利用其發送到服務器AJAX:
// Generate the image file
var image = Canvas2Image.saveAsPNG(canvas, true);
image.id = "canvasimage";
canvas.parentNode.replaceChild(image, canvas);
var url = 'hidden.php',
data = $('#canvasimage').attr('src');
$.ajax({
type: "POST",
url: url,
dataType: 'text',
data: {
base64data : data
}
});
在這至此, 「hidden.php」 接收,看起來像數據的數據塊:圖像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAABE ...
從這一點上,我幾乎難倒。從我讀過的,我相信我應該使用PHP的imagecreatefromstring函數,但我不知道如何從base64編碼的字符串實際創建實際的PNG圖像並將其存儲在我的服務器上。 請幫助!
你需要解析它。你可以從那裏提取圖像類型,然後使用base64_decode並通過圖像類型將該字符串保存在一個文件中 – Constantin 2012-07-16 19:51:56
@Constantine請問你更具體嗎? – 2012-07-16 19:53:11
$ data = $ _REQUEST ['base64data']; $ image = explode('base64,',$ data); file_put_contents('img.png',base64_decode($ image [1])); – Constantin 2012-07-16 19:55:20