使用kinetic js在ajax上发送表单元素

时间:2014-11-30 15:07:55

标签: php jquery ajax kineticjs

我使用kinetic js创建画布,它还使用此ajax将画布保存到图像文件中:

    stage.toDataURL({
      callback: function(dataUrl) {        
        var url = 'export.php';
        $.ajax({ 
            type: "POST", 
            url: url,
            dataType: 'text',
            data: {
            base64data : dataUrl
            }
        });

我还需要将一些表单变量传递给export.php - 最好的方法是什么?

谢谢!

佐伊

1 个答案:

答案 0 :(得分:0)

你的JS部分是正确的:

function upload() {
    stage.toDataURL({
        callback: function (dataUrl) {
            $.ajax({
                type: "POST",
                url: 'export.php',
                dataType: 'text',
                data: {
                    base64data: dataUrl
                }
            });
        }
    });
}

在PHP中,数据以下列模式到达:'data:image / png; base64,... characters'; ...所以你必须提取图像部分。

<?php
$data = $_POST['base64data'];

list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);

file_put_contents('image.png', $data);

请注意,此解决方案并非特定于kineticjs。它可以与任何HTML5画布一起使用,前提是您可以stage.toDataURL()替换canvas.toDataURL()来电。