在 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);
我有一个 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
实际创建您选择的 TypedArraynew TypedArray(buffer [, byteOffset [, length]]);
所以在你的情况下,如果你想要Uint8Array
,你需要做:
var uint8View = new Uint8Array(arrayBuffer);