在javascript ArrayBuffer中访问Uint8Array

时间:2018-04-17 19:11:24

标签: javascript wcf filereader

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

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

我在stackoverflow(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字节的数组 - 无法读取它

由于

皮特

enter image description here

1 个答案:

答案 0 :(得分:11)

Those properties do not actually exist on the ArrayBuffer object。它们由Dev Tools窗口放在那里,用于查看ArrayBuffer内容。

您需要通过constructor syntax

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

所以在您的情况下,如果您需要Uint8Array,则需要执行以下操作:

var uint8View = new Uint8Array(arrayBuffer);