2013-05-16 160 views
1

我有一個HTML5畫布中的圖像,這是從攝像頭的直播流中提取的。當我得到一個幀快照,並將其保存在畫布上我這樣做base64圖像不解碼php

var myImage = canvas.toDataURL("image/png"); 
dom.write('<form method="post" action="upload.php"><input type="myImage" value="'+myImage+'" /><input type="submit" value="Submit" /></form>') 

和upload.php的我做這個

header("Content-type: image/png"); 
$img= $_GET["myImage"]; 
echo '<img src="data:image/gif;base64,'.$img.'" />'; 

這樣做,我得到一個彈出式窗口加載網頁時,當提交表單時,它給我

data:image/png;base64,"VERY HUGE STRING" 

我想要得到它爲圖像。請幫助

+3

'type =「myImage」'你可能指'name = myImage'。 – Sirko

+0

我將'type'改爲'name',但沒有區別。它在文本框中給我很長的字符串,然後是提交按鈕,在彈出窗口 –

+0

中,您通過POST提交,但從$ _GET中檢索。這是不會工作... –

回答

2

您致電header建議您希望輸出實際的PNG圖像作爲對請求的響應。但是,您然後寫出一個HTML標記,它在PNG文件中無效。

如果你想寫出PNG圖像本身,假設$img包含一個有效的PNG格式的圖片,可以以base64與base64_decode功能解碼:

echo base64_decode($img); 

如果你想顯示的圖像一個HTML頁面,將您的header調用更改爲Content-Type: text/html

+0

我想將它保存在一個文件夾中,我怎麼知道PNG圖像是否有效。我認爲另一個問題是提交按鈕,解碼後的字符串在文本框中顯示,然後按下提交按鈕。我該如何擺脫該問題 –

+0

要擺脫文本框,請將您的''設置爲'type =「hidden」'。 –

+0

澄清,是「upload.php」的目的是通過表單將圖像數據發送給它並將其保存到文件中? –

2

canvas.toDataURL()已包含data:image/***;base64,部分,因此請將其從輸出中移除。