使用 Kinetic JS 通过 Ajax 发送表单元素


send form elements over ajax with kinetic js

我正在使用动态js来创建画布,并且它还使用此ajax将画布保存到图像文件中:

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

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

谢谢!

佐伊

你的JS部分是正确的:

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

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

<?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()