读取用户在 Javascript 中选择的文件?

Read a file selected by user in Javascript?

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

我有这个:

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

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

readAsBinaryString 是一个异步函数。它没有 return 数据。

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

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