是否有可能从React-Native中的图像中获取二进制数据?

nul*_*ife 6 react-native react-native-camera react-native-image

我正在使用react-native-camera,我无法将图像作为二进制数据获取react-native.我需要这个能够将图像上传到我们的后端.我唯一能得到的就是uri的图像,然后可能将其发送FormData到服务器,但不建议这样做,因为这需要对我们的后端进行一些基础设施更改.

有没有人知道关于这个问题的解决方案或一些提示?

非常感谢任何想法或帮助.

haw*_*kup 9

如果你想从react-native-camera获取图像作为二进制数据.我建议使用react-native-fs来读取uri

const RNFS = require("react-native-fs");
// response.uri from react-native-camera
RNFS.readFile(response.uri, "base64").then(data => {
  // binary data
  console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

如果你想通过FormData上传图片我推荐使用rn-fetch-blob

import RNFetchBlob from 'rn-fetch-blob'
// response.uri from react-native-camera
const path = response.uri.replace("file://", "");
const formData = [];
formData.push({
  name: "photo",
  filename: `photo.jpg`,
  data: RNFetchBlob.wrap(path)
});

let response = await RNFetchBlob.fetch(
  "POST",
  "https://localhost/upload",
  {
    Accept: "application/json",
    "Content-Type": "multipart/form-data"
  },
  formData
);
Run Code Online (Sandbox Code Playgroud)