反应原生文件转换

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

我正在尝试将音频文件转换为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上完成或纯粹在前端?

谢谢!

reactjs react-native multer file-conversion
1个回答
0
投票

您可以使用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

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