【问题标题】:React Native File-ConversionReact Native 文件转换
【发布时间】:2018-09-16 14:48:39
【问题描述】:

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

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

    【讨论】:

    • FileReader 无法读取文件。只是确认这是放入 formData 的文件吗?
    猜你喜欢
    • 2020-11-06
    • 2020-02-27
    • 2020-05-25
    • 1970-01-01
    • 2022-09-26
    • 2023-03-28
    • 2019-03-04
    • 2020-04-17
    • 2021-12-28
    相关资源
    最近更新 更多