在 javascript ArrayBuffer 中访问 Uint8Array

Access Uint8Array in javascript ArrayBuffer

我有一个 javascript ArrayBuffer 是从 jpeg 文件上的 FileReader ReadAsArrayBuffer 方法生成的。

我正在尝试访问 ArrayBuffer 的 UInt32 数组并发送到 WCF 服务(最终插入到服务器上的数据库中)。

我在 Whosebug (byte array method) 上看到了一个示例,其中将 UnInt32 数组转换为我认为可行的字节数组。

我正在尝试访问下面我的 arrayBuffer 变量的 [[Uint8Array]],这样我就可以将它发送到 WCF,但我运气不佳。我试过:

   var arrayBuffer = reader.result[[Uint8Array]];//nope
     var arrayBuffer = reader.result[Uint8Array];//nope
     var arrayBuffer = reader.result.Uint8Array;//nope
     var arrayBuffer = reader.result[1];//nope

如有任何关于如何访问 [[Uint8Array]] 的想法,我们将不胜感激。当整个 ArrayBuffer 被发送到 WCF 服务时,我得到一个 0 字节数组——无法读取它

谢谢

皮特

Those properties do not actually exist on the ArrayBuffer object。它们由开发工具放在那里 window 用于查看 ArrayBuffer 内容。

您需要通过 constructor syntax

实际创建您选择的 TypedArray
new TypedArray(buffer [, byteOffset [, length]]);

所以在你的情况下,如果你想要Uint8Array,你需要做:

var uint8View = new Uint8Array(arrayBuffer);