react native Expo convertir file://a base64
Posted
技术标签:
【中文标题】react native Expo convertir file://a base64【英文标题】:react native Expo convertir file:// a base64 【发布时间】:2020-08-22 06:31:23 【问题描述】:我正在尝试将 file:// 转换为 base64,我得到了所选文件的 uri (file: // ...),但是当通过 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
在我应该转换为 base64 的第二个 console.log (fileBase64) 中
[Unhandled promise rejection: TypeError: undefined is not an object (evaluating 'FileSystem.EncodingTypes.Base64')]
【问题讨论】:
请使用英文 【参考方案1】:试试吧!为我工作
let fileBase64 = await FileSystem.readAsStringAsync(file.uri, encoding: 'base64' );
【讨论】:
【参考方案2】:你使用了错误的函数。
FileSystem.writeAsStringAsync 用于将内容写入文件。
您想要的是读取文件的内容。
您应该改用 FileSystem.readAsStringAsync。
【讨论】:
以上是关于react native Expo convertir file://a base64的主要内容,如果未能解决你的问题,请参考以下文章
React-native refs 和 Expo Camera
尝试在 create-react-native-app 项目 (expo) 中使用 react-native-fs
React Native “Expo SDK 需要 Expo 才能运行......此代码未在 Expo 上运行。”
React-Native 和 Expo:create-react-native-app 和 react-native init 之间的区别