gpt4 book ai didi

javascript - 将文件内容传递给外部变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:34:31 26 4
gpt4 key购买 nike

我正在使用 FileReader 和 HTML 文件对话框来读取脚本中的文件。如何将此文件的内容传递出 FileReader.onload 函数?

function readFileData(evt) {
var file = evt.target.files[0];
var reader = new FileReader();

reader.onload = function(e) {
var contents = e.target.result;
}
reader.readAsText(file);
}
document.getElementById('file').addEventListener
('change', readFileData, false);

/* I want to access the contents here */

我尝试在 readFileData 和 onload 函数中添加返回值,但我不确定它们返回的是什么。

最佳答案

我假设您知道它的 async 和所有内容。

所以,简短的回答是:不,你不能那样做。

但是,如果您希望以后的任何调用都可以全局访问内容,您可以这样:-

var contents;// declared `contents` outside
function readFileData(evt) {
var file = evt.target.files[0];
var reader = new FileReader();

reader.onload = function(e) {
contents = e.target.result; //<-- I removed the `var` keyword
}
reader.readAsText(file);
}

document.getElementById('file').addEventListener('change', readFileData, false);

var reasonableTimeToWaitForFileToLoad = 100000;

console.log(contents); //`contents` access first attempt: prints undefined



setTimeout(function() {
console.log(contents);//`contents` access second attempt: prints the contents 'may be if the time allows.'
}, reasonableTimeToWaitForFileToLoad);

关于javascript - 将文件内容传递给外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17383770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com