canvas..toDataURL并上传它

时间:2014-12-16 00:22:24

标签: javascript php html5 canvas

我正在努力将画布转换为图片,并在用户提交表单时将其上传到服务器。 图像正确发布但在服务器中显示为空。

这是我的代码,(我正在使用phonegap) .drawImage ()位于main.js ..但canvas..toDataURL位于html的脚本中

 <script>

 function insert()
 {
var img = document.getElementById("myCanvas")[0].toDataURL("image/jpeg");
$.ajax({
type: "POST",

url: "http://*******************/create.php?title="+      ($("#myTitle").val())+"&description="
+$("#myDesc").val()+"&price="+$("#myPrice").val(),

data: {img: img},
success: function(data)
{
    alert("inserted");
}});

</script>

PHP

$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.'; 

有什么想法吗?

编辑!!!

最后是上传!!!

感谢Jack Franzen的建议。 我已将PHP代码更改为

$img = $_POST['img'];
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = uniqid() . '.jpg';
$success = file_put_contents($file, $data);

它正如魅力一样! :)

1 个答案:

答案 0 :(得分:1)

我知道你的问题!您的PHP代码正在寻找&#34; PNG&#34;,但您的javascript正在生成&#34; JPG&#34;

只需切换到DataURL(&#34; image / jpeg&#34;)to toDataURL()