反应本机文件转换

时间:2018-09-16 05:35:13

标签: reactjs react-native multer file-conversion

我正在尝试将音频文件转换为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音频文件

我能够使用multer进行繁重的操作,使用NodeJS服务器进行此转换。

它将为路由提供一个缓冲区,然后我可以将缓冲区转换为base64字符串,然后将其发送到另一台服务器以处理该缓冲区。

有什么想法如何在React Native上或纯粹在前端完成此工作吗?

谢谢!

1 个答案:

答案 0 :(得分: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