我尝试在我的项目中运行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);
}
有没有人知道哪些不起作用?
提前感谢您的帮助!
答案 0 :(得分:7)
我认为问题是您的filename
变量设置为:
filename = "~ / Downloads / snippets" + event.target.innerHTML;
...这是一个字符串,而不是readAsText
上FileReader
函数所期望的对象。
尝试这样的事情:
var fileInputElement = document.getElementById("fileInputElement");
fr.readAsText(fileInputElement.files[0]);
where&#34; fileInputElement&#34;是<input>
类型的HTML file
元素的ID。
这可能与您正在做的事情完全不符,但如果不看到更多的JavaScript和HTML,就不容易判断。