【问题标题】:Javascript - get data out of ArrayBuffer?Javascript - 从 ArrayBuffer 中获取数据?
【发布时间】:2012-06-12 03:31:22
【问题描述】:

我有一个使用readAsArrayBuffer() 的拖放脚本。缓冲区的长度是完美的,但我似乎无法弄清楚如何将数据拉出缓冲区。

显然我必须创建一个DataViewUint8Array 之类的东西,然后遍历它的byteLength...帮助!

编辑 相关代码(不多):

var reader = new FileReader();
reader.onload = function(e) {
    // do something with e.target.result, which is an ArrayBuffer
} 
reader.readAsArrayBuffer(someFileHandle);

【问题讨论】:

  • 我们可能需要更多的代码。您使用的是FileReader 吗?或者readAsArrayBuffer()提供了什么?

标签: javascript drag-and-drop arraybuffer


【解决方案1】:

这可能会根据您对我的评论的回答而改变,但如果我假设您在某处使用FileReader,您需要阅读您需要提供的loaded 回调中的result 属性:

function loaded(evt) {  
  var datastring = evt.target.result;

  // do something here
}

reader.onload = loaded; // where reader is a FileReader, FileReaderSync 

更新:啊,我明白了。那么你最好的做法是遵循这个副本:

Converting between strings and ArrayBuffers

Update2:请注意,那时您可能可以使用readAsText(),但我不知道您是否可以这样做。

【讨论】:

  • 是的,非常感谢,但是.result 属性的类型是ArrayBuffer。如何从中提取数据?
  • @Steve:“提取”是什么意思?你想究竟做什么?
  • 说文件包含一个字符串:foobarbaz。我想要alert(datastring) 之类的东西来提醒foobarbaz。现在,警报显示[object ArrayBuffer]
  • @Steve:更新了我的答案,将您指向另一个提供您需要的线程。
  • 谢谢海勒姆。就是那个。嗯。
猜你喜欢
  • 1970-01-01
  • 2019-02-22
  • 2019-07-13
  • 2013-05-18
  • 1970-01-01
  • 2019-04-05
  • 2019-06-11
  • 2017-01-30
  • 2021-03-04
相关资源
最近更新 更多