我正在尝试将音频文件转换为Base64String以上传到服务器。出于某些原因,我想在上传之前在手机上执行此操作。我在Expo套件中使用了React Native。
我的文件结构如下所示:
let uriParts = uri.split('.');
let fileType = uriParts[uriParts.length - 1];
let formData = new FormData();
formData.append('file', {
uri,
name: `file.${fileType}`,
type: `audio/${fileType}`,
});
假设我们有uri,它是一个.wav音频文件
我能够使用NodeJS服务器进行此转换,multer正在进行繁重的工作。
它会为路由提供缓冲区,然后我可以将缓冲区转换为base64字符串,然后将其发送到另一台服务器来处理缓冲区。
任何想法如何在React Native上完成或纯粹在前端?
谢谢!
您可以使用FileReader类。
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
console.log(reader.result);
};
reader.onerror = function (error) {
console.log('Error: ', error);
};
或者你可以发送blob(它不是base64)。使用https://github.com/wkh237/react-native-fetch-blob库