react-native 中,怎么将得到的图片uri转换为base64的编码?

我需要将本地的照片转成base64,上传到服务器
是怎么用react native转图片为base64,不是静态资源转。
需要兼容Ios和Android

阅读 14.5k
5 个回答

在线转码base64或者用自动化工具webpack、gulp等等,转完之后拿到base64码

<img src="" data:image/png;base64,在这里粘贴你的base64码/>

这个应该没有兼容性的

希望可以帮到你

react-native-image-crop-picker

当然是找个在线的网站转换。如果你用的是react+webpack 里面可以自动设置,小于多大的时候自动转换为base64

楼主这个问题解决了吗,我现在也遇到这个问题了

最近也遇到这个问题了,看了很多资料好像并没有什么直接的操作方法,项目时间紧迫,没时间仔细研究,就用很笨拙的方式,暂时满足了这个需求,用react-native-view-shot截屏的方式,获取到了当前图片的临时截图路径url,再通过RNFS.readFile转换成了base64的图片,效率并不高,具体代码如下:
APP内的js文件中html图片的展示(将image标签用ViewShot括起来,方便获取截屏区域):

<ViewShot ref="viewShot">
  <Image
    onLoadStart={() => {this.setSize(this.state.imgUrl)}}
    onLayout={() => {this.setSize(this.state.imgUrl)}}
    style={{
      width: this.state.imgW,
      height: this.state.imgH,
    }}
    source={{uri: this.state.imgUrl, isStatic: true}}
  />
</ViewShot>

具体转换操作js代码:

this.refs.viewShot.capture().then(url => {
  RNFS.readFile(url, 'base64').then(res => {
    console.log(res) //当前的res就是获取到的最终的base64格式
  })
});

楼主若有更好的解决方案,望分享

推荐问题