base64图像不解码php

时间:2013-05-16 19:09:38

标签: php html5

我在HTML5画布中有一张图片,该图片取自网络摄像头的直播。当我将帧作为快照并将其保存在画布中时,我会这样做

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"

我想把它作为一个图像。请帮忙

2 个答案:

答案 0 :(得分:2)

您对header的来电表示您希望输出实际的PNG图像作为对请求的响应。但是,然后您写出一个HTML标记,该标记在PNG文件中无效。

如果您想要写出PNG图像本身,假设$img包含有效的PNG格式图像,您可以使用base64_decode函数解码base64:

echo base64_decode($img);

如果您想在HTML网页上展示图片,请将header来电更改为阅读Content-Type: text/html

答案 1 :(得分:2)

canvas.toDataURL()已包含data:image/***;base64,部分,因此请将其从输出中删除。