我正在尝试验证从 React Native 中的 CameraRoll 中选择的图像的文件大小。我的代码适用于 Android,但不适用于 IOS,因为 RNFS.readFile 不支持 PHASSETS。有没有其他方法可以在 react native 中验证图像的文件大小?
我也尝试过使用 RNFS 的 copyAssetsFileIOS
RNFS.copyAssetsFileIOS(path, RNFS.TemporaryDirectoryPath, 0, 0)
.then(res => console.log('RES: ', res))
.catch(err => console.log('ERROR: ', err));
我也尝试将 PHASSET 转换为 ALASSET
path = `assets-library://asset/asset.${ext}?id=${path.substr(9)}&ext=${ext}`;
这是我的代码,适用于 Android 但不适用于 IOS
RNFS.readFile(path, 'base64')
.then(res => {
// eslint-disable-next-line no-undef
const str = Platform.OS === 'ios' ? base64.decode(res) : atob(res);
const fileSize = str.length;
if (fileSize < 3000000)
this.setState({
imageSource: source,
hasExceededLimit: false,
});
else this.setState({ hasExceededLimit: true });
})
.catch(() => this.setState({ hasExceededLimit: true }));