Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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_Angularjs_Return_Filereader - Fatal编程技术网

Javascript 文件读取器输出保存到变量

Javascript 文件读取器输出保存到变量,javascript,angularjs,return,filereader,Javascript,Angularjs,Return,Filereader,我想问你们,如何用JavaScript将FileReader的输出保存到一个变量中,或者让FileReader的函数返回输出 这里还有一些代码: HTML <input type='file' id='inputFile'> <button id='btn'>Save</button> 我发现FileReader是异步的,我需要回调或smth,但我不完全理解如何实现 谢谢您可以使用AngularJS获得结果。只要确保在创建imgToBase64函数的任何地方

我想问你们,如何用JavaScript将FileReader的输出保存到一个变量中,或者让FileReader的函数返回输出

这里还有一些代码:

HTML

<input type='file' id='inputFile'>
<button id='btn'>Save</button>
我发现FileReader是异步的,我需要回调或smth,但我不完全理解如何实现

谢谢

您可以使用AngularJS获得结果。只要确保在创建imgToBase64函数的任何地方注入$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;
    });
}

您好,请问您是否知道如何将输入数组传递给函数“imgToBase64()”,然后将结果保存到结果数组中?谢谢:)@marek-Search-stack-overflow获取答案,并将其作为问题发布。如果您没有看到答案,我将密切关注。
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;
    });
}