gpt4 book ai didi

javascript - Filereader 输出保存到变量

转载 作者:行者123 更新时间:2023-11-30 15:58:33 26 4
gpt4 key购买 nike

想请教各位,如何在JavaScript中将FileReader的输出保存到一个变量中,或者让FileReader所在的函数返回输出。

这里还有一些代码:

HTML

<input type='file' id='inputFile'>
<button id='btn'>Save</button>

JavaScript

function imgToBase64(file_input) {
if (file_input.files && file_input.files[0]) {
var fileReader = new FileReader();
fileReader.onload = function (event) {
result = event.target.result;
return result // ???
};
fileReader.readAsDataURL(file_input.files[0]);
}
}

parameter = document.getElementById('inputFile');
btn = document.getElementById('btn');

btn.onclick = function() {
variable = imgToBase64(parameter); //in this variable I would like to store the result from that function
}

我发现 FileReader 是异步的,我需要一个回调或 smth,但我不完全明白该怎么做。

谢谢

最佳答案

您可以使用 AngularJS 的 $q promises得到结果。只要确保在创建 imgToBase64 函数的任何地方注入(inject) $q 即可。

function imgToBase64(file_input) {
var deferred = $q.defer();
if (file_input.files && file_input.files[0]) {
var fileReader = new FileReader();
fileReader.onload = function (event) {
result = event.target.result;
deferred.resolve(result);
};
fileReader.readAsDataURL(file_input.files[0]);
}
return deferred.promise;
}

parameter = document.getElementById('inputFile');
btn = document.getElementById('btn');

btn.onclick = function() {
imgToBase64(parameter).then(function (result) {
variable = result;
});
}

关于javascript - Filereader 输出保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107973/

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