首页 > 解决方案 > reader.readAsDataURL() 总是返回 blob 的 MIME 类型和“[object FileList]”

问题描述

我一直在尝试编写一个脚本来对字体文件进行 Base64 编码,这是我的代码:

var fileExtension = fontName(".").pop();
    if (fileExtension == "ttf") {
        var blob = new Blob([fontFile], {type: "font/ttf"});
    } else if (fileExtension == "otf") {
        var blob = new Blob([fontFile], {type: "font/otf"});
    };

    const binaryData = async (blob) => {
        return await base64Encode(blob);
    }

    const base64Encode = blob => new Promise((resolve, reject) => {
        var reader = new FileReader();
        reader.readAsDataURL(blob);
        reader.onload = () => resolve(reader.result);
        reader.onerror = error => reject(error);
    });

问题是当我调用binaryData(blob)它时总是返回以下字符串:data:font/ttf;base64,W29iamVjdCBGaWxlTGlzdF0=. 我尝试了 Base64 解码 W29iamVjdCBGaWxlTGlzdF0= ,它只是意味着[object FileList]。谁能帮我弄清楚为什么它总是返回那个?我也没有使用btoa(),因为显然它只适用于字符串。

标签: javascriptfontsbase64blobfilereader

解决方案


推荐阅读