我每隔几秒从画布生成一个base64字符串:
function generateImg(start) {
startInterval = setInterval(function() {
saveBase64StringAjax(canvas.toDataURL());
}, 1000);
}
function saveBase64StringAjax(imgData) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: 'postStream',
type: 'post',
data: imgData,
success:function(data) {
console.log(data);
}
});
}
如果我从console.log(canvas.toDataURL())复制数据并将其粘贴到此处http://codebeautify.org/base64-to-image-converter,我会得到正确的图像。
我通过ajax将数据发送到我的控制器功能:
public function postAjax(Request $request)
{
$data = $request->all();
}
我的ajax中的成功方法调用$ data但是base64string是错误的,如果我在这里粘贴它:http://codebeautify.org/base64-to-image-converter它什么也没显示。
工作base64字符串:http://kopy.io/fjlzp base64字符串不起作用:http://kopy.io/w1F20
除此之外,我在非工作基础64字符串周围生成此脚本:http://kopy.io/X7TtO
答案 0 :(得分:1)
典型的Base64字符串可能如下所示:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 =
请注意,由于最后=
,服务器将获得一个带有数组键TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4
的查询字符串和一个空值,这将使事情变得混乱。
这样做:
function saveBase64StringAjax(imgData) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: 'postStream',
type: 'post',
data: { imgData: imgData },
success:function(data) {
console.log(data);
}
});
}
然后您可以通过以下方式获取此数据:
public function postAjax(Request $request) {
$data = $request->imgData;
}