HTML5 FileReader的问题

use*_*480 3 html5 filereader google-chrome-app

我尝试在我的项目中运行FileReader函数,但它只能工作pas.Mon项目的工作方式如此,我列出了目录中的所有文件.一切正常.但是当我在列表中选择一个文件(我的文件是本地的)时,我最终得到了这个错误,我不明白:

未捕获的TypeError:无法在'FileReader'上执行'readAsText':参数不是Blob.

这是我的代码:

GetFileName function (fs) {
     var target = event.target || event.srcElement;

     var childs = target.parentNode.childNodes;
     {for (i = 0; i ++; i <childs.length)
         if (target == childs [i]) break;
     }

     console.log (i); // Index li
     console.log (event.target.innerHTML); // li value

     filename = "~ / Downloads / snippets" + event.target.innerHTML;

var fr = new FileReader ();
fr.onload = function (e) {
     console.log (e.target.result);
};
fr.readAsText (filename);
}
Run Code Online (Sandbox Code Playgroud)

有谁知道什么不起作用?

预先感谢您的帮助!

ATG*_*ATG 7

我认为问题是你的filename变量设置为:

filename = "~ / Downloads / snippets" + event.target.innerHTML;
Run Code Online (Sandbox Code Playgroud)

...这是一个String,而不是readAsText函数所期望的对象FileReader.

尝试这样的事情:

var fileInputElement = document.getElementById("fileInputElement");
fr.readAsText(fileInputElement.files[0]);
Run Code Online (Sandbox Code Playgroud)

其中"fileInputElement"是<input>类型的HTML 元素的ID file.

这可能与您正在做的事情完全不符,但如果没有看到更多的JavaScript和HTML,这并不容易.