使用 ajax 上传数组缓冲区(音频缓冲区)的最佳方法
2016-03-20
1074
我有一个音频缓冲区,如下所示:[float32Array[largeSize], float32Array[largeSize]]。
我正在尝试找出如何最好地将其上传到我的 express/node 服务器。
我考虑这样做的方式是这样的:
$.ajax({
type: 'POST',
url: '/uploadTrackOne',
data: {buffer : JSON.stringify(MYAUDIOBUFFERS},
dataType: "buffer"
});
这是正确的方法吗?
如果缓冲区足够长,我会收到以下错误: Uncaught RangeError:无效的字符串长度
而且似乎在这么大的缓冲区上,JSON.stringy 非常慢,所以我想也许我做得不对。
2个回答
您应该研究一下“分块”:将缓冲区分成更小的部分,然后逐个上传各部分。以下是两个示例(用于上传文件):
-
http://mylinuxtechcorner.blogspot.no/2015/03/upload-large-files-on-web-using.html
(使用 jQuery 和
$.ajax({ ...
)。 -
http://jsfiddle.net/davidchase03/n7psA/
(使用
XMLHttpRequest
)。
然后,您的服务器需要将各个部分重新组合在一起。
Sphinxxx
2016-03-20
事实证明,使用 XMLHttpRequest2 可以非常轻松地发送原始二进制数据,无需进行字符串化。这解决了我的问题
Daver Muzaffar
2016-04-07