我使用kinetic js创建画布,它还使用此ajax将画布保存到图像文件中:
stage.toDataURL({
callback: function(dataUrl) {
var url = 'export.php';
$.ajax({
type: "POST",
url: url,
dataType: 'text',
data: {
base64data : dataUrl
}
});
我还需要将一些表单变量传递给export.php - 最好的方法是什么?
谢谢!
佐伊
答案 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()
来电。