我正在尝试上传具有抓取功能(多部分/表单数据)的图像。我看到的每个示例都表明,在构造表单数据时,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(全部小写)。