嘟嘟社区

【有偿】问一个JS ArrayBuffer 的问题


Nodejs 里面读取一个文件打印
  1. var buff = fs.readFileSync(‘test.mp4’)
  2. console.log(buff.buffer)

复制代码

buffer是这样的

  1. ArrayBuffer {
  2.   [Uint8Contents]: <47 40 11 10 00 42 f0 25 00 01 c1 00 00 ff 01 ff 00 01 fc 80 14 48 12 01 06 46 46 6d 70 65 67 09 53 6
  3. 5 72 76 69 63 65 30 31 77 7c 43 ca ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff f
  4. f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff … 2128624 more bytes>,
  5.   byteLength: 2128724
  6. }

复制代码

然后我把这个文件丢网上了,用 XMLHttpRequest 请求拿到 data , 这时候是 ArrayBuffer 对象,怎么拿到和如上这种二进制数据呢?貌似需要转换

什么意思,arraybuffer转成buffer还是blob

xqdoo00o 发表于 2022-5-19 17:33
什么意思,arraybuffer转成buffer还是blob

转成 buffer吧 浏览器上 arraybuffer 打印结果不如 nodejs里面这个buffer这么直观

1121744186 发表于 2022-5-19 17:35
转成 buffer吧 浏览器上 arraybuffer 打印结果不如 nodejs里面这个buffer这么直观

buffer是node js的类型。浏览器只有arraybuffer。不过你可以转成 uint8array 显示效果是一样的。new Uint8Array(arrayBuffer) 就好了