所以,我有一个用于从网络摄像头捕获视频的脚本。记录之后,我用javascript将这个视频(一个blob)转换为base64编码,并将这个base64数据放入image.src
进行预览:
var img = document.createElement('img');
var reader = new window.FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
base64data = reader.result;
img.src = base64data;
}
之后,我可以在我的页面上的base64中看到我的GIF。
我有一个用于裁剪的脚本并调整GIF的大小,之后,我将这个base64data发送到一个带有AJAX的PHP脚本:
var gif = $('.generated-img').attr('src').replace('data:image/gif;base64,', '');
gif = gif.match(/.{1,500000}/g);
$.ajax({
type:"POST",
url: "/webcam/",
data: {image_gif:gif, crop_x:x, crop_y:y, crop_w:w, crop_h:h, gif:true},
success: function () {
parent.$.fancybox.close();
}
});
var gif
(我的base64data)是一个非常长的字符串,大约有2 000 000个字符。所以,我必须把它分成几块(每个500 000个字符),否则ajax不会发送。
我的问题:这个ajax请求执行的时间非常长(在30秒到2分钟之间),我在一台连接良好的服务器上。问题是我的base64data的大小。对于ajax,2M的字符太多了。
你有什么解决方案吗?我需要将这些数据发送到php,但没有这么长的执行时间..谢谢!