【问题标题】:FileReader returns "undefined". Why? [closed]FileReader 返回“未定义”。为什么? [关闭]
【发布时间】:2013-03-11 10:54:58
【问题描述】:

谁能弄清楚为什么 FileReader 对象的这个声明返回未定义?

console.log("this is f " + f);

console.log(f);

var reader = new FileReader(); 
var ref = reader.readAsArrayBuffer(f);
console.log(ref);
console.log("the reader object is " + reader.length);//why does reader not have a length       property?

这是我的 jsFiddle:http://jsfiddle.net/trkkazulu/6bV63/

谢谢,

J。威尔斯

【问题讨论】:

  • 你想达到什么目的?
  • 反对票对我来说似乎有点苛刻,Jair-Rohm 显然正在努力。
  • @T.J.克劳德谢谢:-)

标签: javascript html audio html5-audio


【解决方案1】:

FileReader doesn't have a length property. 你可能想要Blob#size(File——你的f 是一个File 实例——继承自Blob)。

Here's a link 回复我不久前使用 File API 显示文件大小的 SO 答案,如果这是您想要获得的。

【讨论】:

  • 谢谢!我最终想要得到的是对我拥有的“解码”功能可以使用的音频文件的引用。这个 fileReader 对象现在只是用于为不同的解码器对不同的音频格式进行排序。
  • 我已将“length”更改为“size”,并且 FileReader 对象仍然返回为“undefined”,并且它的 size 属性不存在。我做错了什么?
  • @Jair-RohmParkerWells:再看看答案:size 属性不在FileReader 上,它在Blob 上(并由File 继承)。所以不是reader,而是f。不过,更有可能的是,鉴于您在上面的评论,您可能想要回复load 事件并查看reader.result 中ArrayBuffer 中的数据。 Here's another SO answer我已经展示了实际获取文件的内容(你对“二进制”位感兴趣)。
  • 好的,我将读取器对象大小的调用移到 reader.onload() 块中。现在我通过在传递给 reader.onload 的“文件”参数上调用“大小”来获得大小。嗯不错。尽管如此,我的变量“stuff”还是返回“undefined”。
  • @Jair-RohmParkerWells:您的问题中没有 stuff 变量。 (问题不应该依赖于仅链接的内容——呃,链接到场外,也就是说,依赖 SO 内容很好。)但我想如果你通读我链接的两个例子,尤其是第二个例子,你会到达那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 2021-12-11
  • 2019-08-21
  • 1970-01-01
相关资源
最近更新 更多