【问题标题】:Read a file selected by user in Javascript?在Javascript中读取用户选择的文件?
【发布时间】:2015-02-02 14:49:38
【问题描述】:

我环顾四周,仍然没有找到一个令人满意的简单答案来解决这个(被认为是流行的)问题。解决方案要么直接将文件发送到后端,要么过于复杂。

我有这个:

$("#"+id+" input").change(function() {
    file = $(this).prop('files')[0]
    var reader = new FileReader();
    readed = reader.readAsBinaryString(file)
    console.log(readed)
});

这给了我undefined。有没有一种简单的方法来读取用户选择的文件并读取内容?

【问题讨论】:

  • 您也可以发布 HTML 吗?一个 jsfiddle 会很棒!
  • 如果您尝试使用 JavaScript 从用户计算机打开本地文件,那么除非用户的浏览器禁用了安全功能(这可能不会发生),否则您无法真正做到这一点
  • @AlvaroMontoro — 这不是真的。 FileReader API 使之成为可能。
  • 需要为阅读器绑定onload事件,如:jsfiddle.net/dcxegcco
  • @Quentin,有趣的是,我不知道那个 Web API。我得读一读。

标签: javascript jquery file-get-contents readfile


【解决方案1】:

readAsBinaryString 是一个异步函数。它不返回数据。

您需要创建一个在读取数据时触发的事件处理程序,然后从 FileReader 对象中读取它。

var file = $(this).prop('files')[0]
var reader = new FileReader();
reader.onloadend = function () {
  console.log(reader.result);
}
reader.readAsBinaryString(file)

【讨论】:

  • 谢谢。其实我在你回答之前就找到了解决方案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 2021-03-20
相关资源
最近更新 更多