【问题标题】:Javascript Read File + Convert to Base64 Waiting For Result UndefinedJavascript 读取文件 + 转换为 Base64 等待结果未定义
【发布时间】:2021-07-27 01:32:27
【问题描述】:

我需要将上传的文件转换为base64,并将其作为参数传递给Web Api。

在示例中,如果我写入控制台 reader.result 它会写入正确的 base64 结果,但如果我将其作为返回变量返回,我会获得未定义的结果。

所以我无法从这个函数中检索结果,因为我必须将它传递给 ajax 调用。

如何等待编码完成,然后得到结果?

谢谢大家

 function getBase64(file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function () {
      return (reader.result);
    };
    reader.onerror = function (error) {
      return ('Error: ', error);
    };
  }
$(document).ready(function () {

var base64File;
var files = document.getElementById('file').files; // uploaded file
if (files.length > 0) {
    base64File = getBase64(files[0]);
} 

console.log(base64File) // undefined 

});

【问题讨论】:

    标签: javascript html api file-upload base64


    【解决方案1】:

    getBase64函数只返回一个控制台日志,不应该返回reader.result吗?

    【讨论】:

    • 是的,它应该但是编码读取需要一些时间,并且函数结果变得未定义(无论如何我修改代码更清晰)
    • 这个链接上的答案应该对你有帮助stackoverflow.com/questions/11829537/…
    • 我试试看谢谢,js的回调是我完全看不懂的东西
    猜你喜欢
    • 1970-01-01
    • 2018-11-02
    • 2012-12-22
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多