FileReader返回“undefined”。为什么?

问题描述:

任何人都可以找出为什么FileReader对象的声明返回undefined?FileReader返回“undefined”。为什么?

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.威尔斯

+0

你想达到什么目的? – VisioN 2013-03-11 10:59:00

+1

对于我来说,降价似乎有些苛刻,Jair-Rohm显然正在努力。 – 2013-03-11 11:16:39

+0

@ T.J. Crowder感谢:-) – 2013-03-11 11:48:00

FileReader doesn't have a length property.你可能想Blob#sizeFile   —您fFile实例 从Blob —继承) 。

Here's a link到我之前做过的一个答案,如果这就是你想要得到的结果,使用File API显示文件的大小。

+0

谢谢!我最终想要得到的是一个可以被我使用的“解码”功能使用的音频文件的参考。这个fileReader对象现在只是用于为不同的解码器分类不同的音频格式。 – 2013-03-11 11:05:02

+0

我已将“长度”更改为“大小”,并且FileReader对象仍会回到“未定义”,并且其大小属性不存在。我究竟做错了什么? – 2013-03-11 11:06:56

+0

@ Jair-RohmParkerWells:再次看看答案:'size'属性不在'FileReader'上,它在'Blob'上(并且由'File'继承)。所以不是'reader',而是'f'。不过,更有可能的是,考虑到上面的评论,您可能想回应'load'事件并查看['reader.result']中的'ArrayBuffer'中的数据(http://www.w3.org/TR/FileAPI /#DFN-结果)。 [这是另一个SO回答](http://*.com/questions/3146483/html5-file-api-read-as-text-and-binary/3146509#3146509)我已经完成显示实际获得的内容文件(你对“二进制”位感兴趣)。 – 2013-03-11 11:11:05