首页 > 解决方案 > 在 Nativescript 中将文件转换为 base64

问题描述

我一直在尝试获取 Nativescript 文件的 base64,到目前为止,我尝试了下一个:

    const documents: Folder = <Folder>knownFolders.documents();
    const folder: Folder = <Folder>documents.getFolder("Download");
    const file: File = <File>folder.getFile("Vista general Aguas.pdf");
    
    const toBase64 = (fle: File) => new Promise((resolve, reject) => {
        const reader = new FileReader();
        const newFile = fle.readSync(err => console.log(err));

// I know that I have to convert the binary to base64, but I'm getting this [B@9b1d878 in newFile
        reader.readAsDataURL(newFile);
        reader.onload = () => resolve(reader.result);
        reader.onerror = error => reject(error);
    });

    toBase64(file).then(result => console.log('64', result));

任何帮助表示赞赏!

标签: nativescriptangular2-nativescriptnativescript-angular

解决方案


我已经使用本机实现创建了函数。此函数返回 base64 字符串。

public getBase64String = (path) => {
    const sourceFile: fs.File = fs.File.fromPath(path);
    const data = sourceFile.readSync();
    if (isIOS) {
        return data.base64EncodedStringWithOptions(0);
    } else {
        return android.util.Base64.encodeToString(
            data,
            android.util.Base64.NO_WRAP
        );
    }
};

推荐阅读