在javascript ArrayBuffer中访问Uint8Array

pvi*_*itt 3 javascript wcf filereader

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

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

我在stackoverflow(字节数组方法)上看到了一个示例,其中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
Run Code Online (Sandbox Code Playgroud)

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

谢谢

皮特

在此输入图像描述

Pat*_*ans 13

这些属性实际上并不存在于ArrayBuffer对象上.它们被Dev Tools窗口放在那里以查看ArrayBuffer内容.

您需要通过其构造函数语法实际创建您选择的TypedArray

new TypedArray(buffer [, byteOffset [, length]]);
Run Code Online (Sandbox Code Playgroud)

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

var uint8View = new Uint8Array(arrayBuffer);
Run Code Online (Sandbox Code Playgroud)