Javascript 如何将两个数组缓冲区合并为一个?

Javascript 如何将两个数组缓冲区合并为一个?,javascript,cordova,blob,fileapi,Javascript,Cordova,Blob,Fileapi,我有一个大斑点的rar文件。要解压缩它,我必须使用这个库 我正在测试的blob大约是23MB,要读取ArrayBuffer,然后将其提供给unrar.js,我必须对其进行切片 出于某种原因,unrr.js不能很好地处理切片blob——如果切片blob范围不是以0开头或以blob.size结尾,它将抛出未知的归档类型错误-奇怪- 我能想到的唯一解决办法是将blob作为片段读取,然后在onloadend函数中再次收集它-这可能吗- 收集一个数组中的数组缓冲区然后将其馈送到unrr.js以解压缩文件,

我有一个大斑点的rar文件。要解压缩它,我必须使用这个库

我正在测试的blob大约是23MB,要读取ArrayBuffer,然后将其提供给unrar.js,我必须对其进行切片

出于某种原因,unrr.js不能很好地处理切片blob——如果切片blob范围不是以0开头或以blob.size结尾,它将抛出未知的归档类型错误-奇怪-

我能想到的唯一解决办法是将blob作为片段读取,然后在onloadend函数中再次收集它-这可能吗-

收集一个数组中的数组缓冲区然后将其馈送到unrr.js以解压缩文件,就像从一个blob读取一样


如果这听起来对您来说太烦人了,我希望您能以其他方式在javascript/phonegap环境中读取rar文件。

我不确定自己是否完全理解blob被分割的原因,但如果是这样,您可能可以执行以下操作:

var Blob=[newblob(['Hello'])、newblob(['World']);
var缓冲区=[];
var buffersFilled=0;
对于(var i=0;i};这正是我想要做的。不过,我们必须把它简化一点。一个问题的结果是类似fileReader的数组缓冲区。结果正确吗?@Zahema result的类型是Uint8Array。要访问fileReader.result提供的ArrayBuffer,您需要使用result.buffer,这将为您提供ArrayBuffer,如果引用了它,则为Uint8Array。见: