【问题标题】:Problems with HTML5 FileReaderHTML5 FileReader 的问题
【发布时间】:2014-11-06 15:31:56
【问题描述】:

我尝试在我的项目中运行 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);
}

有没有人知道什么是行不通的?

提前感谢您的帮助!

【问题讨论】:

  • 错误似乎很清楚。你不能给它一个filename。它需要 Blob 表示文件或 File 对象。
  • 我想知道你是如何列出文件的。

标签: html google-chrome-app filereader


【解决方案1】:

我认为问题在于您的 filename 变量设置为:

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

...这是一个字符串,而不是FileReader 上的readAsText 函数所期望的对象。

试试这样的:

var fileInputElement = document.getElementById("fileInputElement");
fr.readAsText(fileInputElement.files[0]);

其中“fileInputElement”是file 类型的HTML &lt;input&gt; 元素的ID。

这可能与您正在做的事情不完全吻合,但如果不查看更多 JavaScript 和 HTML 就很难判断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多