使用blob或base64而不是uri来反应Native Javascript上传文件

时间:2018-02-16 06:22:46

标签: javascript reactjs react-native file-upload base64

我目前正在上传图片。

如果我使用这种方法,它可以工作:

formData.append("file",{uri,type,name});

但是,我不想使用图像URI来发送我的图像。因为我想将图像分成不同的部分,我如何发送blob而不是URI?或者也许是base64。

1 个答案:

答案 0 :(得分:0)

您可以使用下面的代码将图片转换为base64

import {Image,ImageStore,ImageEditor} from 'react-native';

const imageURL = response.uri; //path for the image
        Image.getSize(imageURL, (width, height) => {
          var imageSize = {
            size: {
              width,
              height
            },
            offset: {
              x: 0,
              y: 0,
            },
          };
          ImageEditor.cropImage(imageURL, imageSize, (imageURI) => {
            console.warn(imageURI);
            ImageStore.getBase64ForTag(imageURI, (base64Data) => {
              this.setState({ pictureBase64: base64Data });
              console.warn("Base", base64Data) //Converted base64 image
              ImageStore.removeImageForTag(imageURI);
            }, (reason) => console.warn(reason))
          }, (reason) => console.warn(reason))
        }, (reason) => console.warn(reason))
      }
    });