JuanF
JuanF

Reputation: 876

Convert File to base64 in Nativescript

I have been trying to get the base64 of a File of Nativescript, so far I have tried the next:

    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));

Any help is appreciated!

Upvotes: 1

Views: 834

Answers (1)

Parth Patel
Parth Patel

Reputation: 128

I have created function using native implementation. This function return base64 string.

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
        );
    }
};

Upvotes: 4

Related Questions