Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中读取用户选择的文件?_Javascript_Jquery_File Get Contents_Readfile - Fatal编程技术网

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

在Javascript中读取用户选择的文件?,javascript,jquery,file-get-contents,readfile,Javascript,Jquery,File Get Contents,Readfile,我环顾四周有一段时间,仍然没有找到一个令人满意的简单答案来解决这个(被认为是流行的)问题。解决方案要么直接将文件发送到后端,要么过于复杂 我有这个: $("#"+id+" input").change(function() { file = $(this).prop('files')[0] var reader = new FileReader(); readed = reader.readAsBinaryString(file) console.log(read

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

我有这个:

$("#"+id+" input").change(function() {
    file = $(this).prop('files')[0]
    var reader = new FileReader();
    readed = reader.readAsBinaryString(file)
    console.log(readed)
});
但是,这给了我
未定义的
。有没有一种简单的方法可以读取用户选择的文件并读取内容?

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

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

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

你也可以发布HTML吗?一个JSFIDLE会很棒!如果您试图使用JavaScript从用户的计算机上打开本地文件,那么除非用户的浏览器禁用了安全功能(这可能不会发生)@Alvarontoro-这不是真的。FileReader API使之成为可能。您需要为阅读器绑定onload事件,例如:@Quentin,有趣,我不知道那个Web API。我得读一读,谢谢。实际上,在你回答之前,我找到了解决方案:)