【问题标题】:Access Uint8Array in javascript ArrayBuffer在 javascript ArrayBuffer 中访问 Uint8Array
【发布时间】:2018-09-27 20:59:22
【问题描述】:

我有一个从 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 字节数组——无法读取它

谢谢

皮特

【问题讨论】:

    标签: javascript wcf filereader


    【解决方案1】:

    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);
    

    【讨论】:

    • 谢谢。现在我必须让 WCF 服务读取/接受 UIntArray
    • 得到错误参数类型'string | ArrayBuffer' 不能分配给 'ArrayBuffer | 类型的参数ArrayLike |共享数组缓冲区'。类型 'string' 不可分配给类型 'ArrayBuffer | ArrayLike | SharedArrayBuffer'.ts(2769)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2019-05-19
    • 2021-05-10
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多