React Native CameraRoll:图像对象的类型和文件名未定义

时间:2019-04-05 16:43:51

标签: react-native

我正在尝试上传具有抓取功能(多部分/表单数据)的图像。我看到的每个示例都表明,在构造表单数据时,image.type,image.fileName和image.uri都是必需的。

我确实获得了image.uri,但iOS和Android之间的fileName不一致,并且类型始终未定义。

如何获取image.type?我不认为我可以假设'image / jpeg'是因为iOS具有HEIC和PNG(屏幕截图)...

这是我与React Native CameraRoll一起使用的基本代码:

loadPhotos = () => {
   CameraRoll.getPhotos({
     first: 200,
     assetType: 'Photos',
   })
   .then(r => {
     this.setState({
       photos: r.edges,
       arePhotosLoading: false,
     });
   })
   .catch((err) => {
     // error loading images
   });
};

然后再显示照片,并允许用户选择其中一张:

{this.state.photos.map((p, i) => {
  let image = p.node.image;
  return(
    <View>
    <TouchableHighlight key={i} onPress={ () => this.photoPressed(image) }>
      <Image
        style={{ width: 120, height:120, margin: 5, }}
        source={{ uri: image.uri }}
      />
    </TouchableHighlight>
  </View>                
  );
})}

稍后,如果我尝试获取image.fileName,image.type通常未定义

最后一点,我看到苹果〜有时〜提供了image.filename(全部小写)。

0 个答案:

没有答案