iOS上的Rn-fetch-blob使用RNFetchBlob上传图像

问题描述

我尝试使用以下代码在服务器上上传图像:

    updateAvatar(token,photo) {
    return postimage(
      "http://lk.skilla.ru/myapi/updateAvatar",[
        {
          name: "avatar",filename: "avatar.jpg",type: "image/jpg",data: Platform.OS === "android" ? RNFetchBlob.wrap(photo) : photo,},],token
    );
  },const postimage = (url,params,token) => {
  return RNFetchBlob.config({ fileCache: true,appendExt: "jpg" })
    .fetch(
      "POST",url,{ Authorization: token,"Content-Type": "multipart/form-data" },params
    )
    .then((res) => {
      console.log("response");
      console.log(res.text());
        return Platform.OS === 'android' ? 'file://' + res.path() : '' + res.path()
    })
    .catch((error) => console.log(error));
};

在android上一切正常,但在RN-Fetch-Blob返回的iOS文件上不存在。如何在iOS上包装网址? RNFetchBlob.wrap不起作用

解决方法

这就是我让它为我工作的方式。

const filePath = Platform.OS === 'ios'
    ? res.path().replace('file:///','').replace('file://','')
    : res.path().replace('file://','').replace('file:/','');