我已经能够使用 .ajax() 和 php 保存画布图像数据,但不能保存在蛋糕中。我这样做的方式如下。我有一个 javascript,当用户在绘制画布后单击表单中的“提交”按钮时运行:
var formdata = $("form").serialize();
var data = document.getElementById("canvasElement").toDataURL();
formdata += "&img=" + data;
$.ajax({
type: "POST",
url: "process.php",
data: formdata,
success: function() {
$('body').prepend('<div class="alert">Your bit of data was successfully saved.</div');
$('.alert').delay(2000).slideUp('slow');
},
error:function (xhr, ajaxOptions, thrownError){
alert("Error Status: " + xhr.status + " Thrown Errors: "+thrownError);
}
然后 process.php 处理图像数据并将其保存到文件中。这是重点:
$img = $_POST['img'];
// remove header information that's sent with the encoded data
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = "images/" . uniqid() . '.png';
这一切都如我所愿。我怎样才能在 cakephp 框架中做到这一点?我已经读过,代替常规的蛋糕表单提交,您可以使用 Js 助手进行 ajax 提交,如下所示: echo $this->Js->submit('Save'); 是否有我可以传递给提交函数的参数来保存图像数据?有没有更好的办法?