反应原生Expo转换文件:// a base64

问题描述 投票:0回答:1

我正在尝试将file://转换为base64,我得到了所选文件的uri(文件:// ...),但是当通过FileSystem传递给它以转换为base64时,我遇到了问题

 pdf = async () => {
    let file = await DocumentPicker.getDocumentAsync({ type: "application/pdf", copyToCacheDirectory: true, multiple: true });

    console.log(file.uri)

   let fileBase64 = await FileSystem.writeAsStringAsync(file.uri, { encoding: FileSystem.EncodingTypes.Base64  });

    console.log(fileBase64)
}

在第一个console.log(file.uri)中,我得到文件的uri

file:///data/user/0/host.exp.exponent/cache/ExperienceData/%2540anonymous%252Fasd-6a4b4e8e-3a0f-43b8-b1ds94-99f8ac7/DocumentPicker/9cf51edfab9-5185-411f-a397-ef10633sdf7324f.pdf

在第二个console.log(fileBase64)中,我应将其转换为base64并得到

[Unhandled promise rejection: TypeError: undefined is not an object (evaluating 'FileSystem.EncodingTypes.Base64')]

reactjs react-native react-native-android expo react-native-ios
1个回答
0
投票

您使用了错误的功能。

FileSystem.writeAsStringAsync用于将内容写入文件。

您想要读取文件的内容。

您应该改用FileSystem.readAsStringAsync。

© www.soinside.com 2019 - 2024. All rights reserved.