Javascript 我能';t使用从RNCameraRoll获取的相集使用RNFS读取文件

Javascript 我能';t使用从RNCameraRoll获取的相集使用RNFS读取文件,javascript,ios,react-native,phasset,react-native-fs,Javascript,Ios,React Native,Phasset,React Native Fs,我正在尝试验证在React Native中从CameraRoll中选择的图像的文件大小。我的代码在Android中工作,但在IOS中不工作,因为RNFS.readFile不支持PHASSETS。是否有其他方法验证react native中图像的文件大小 我还尝试过使用RNFS的CopyAssetFileIOS RNFS.copyAssetsFileIOS(path, RNFS.TemporaryDirectoryPath, 0, 0) .then(res => consol

我正在尝试验证在React Native中从CameraRoll中选择的图像的文件大小。我的代码在Android中工作,但在IOS中不工作,因为RNFS.readFile不支持PHASSETS。是否有其他方法验证react native中图像的文件大小

我还尝试过使用RNFS的CopyAssetFileIOS

RNFS.copyAssetsFileIOS(path, RNFS.TemporaryDirectoryPath, 0, 0)
        .then(res => console.log('RES: ', res))
        .catch(err => console.log('ERROR: ', err));
我还尝试将相位集转换为相位集

path = `assets-library://asset/asset.${ext}?id=${path.substr(9)}&ext=${ext}`;
这是我的代码,它在安卓系统中工作,但在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 }));
RNFS.readFile(路径'base64')
。然后(res=>{
//eslint禁用下一行无未定义
const str=Platform.OS=='ios'?base64.decode(res):atob(res);
const fileSize=str.length;
如果(文件大小<3000000)
这是我的国家({
图像来源:来源,
已超出限制:错误,
});
else这个.setState({haseExceededLimit:true});
})
.catch(()=>this.setState({haseExceededLimit:true}));

iOS是沙盒的,这意味着您无法直接读取/写入应用程序包之外的任何文件。
要访问iOS照片库中的照片/视频,请使用照片框架中的方法。

iOS是沙盒,这意味着您无法直接读取/写入应用程序包之外的任何文件。
要访问iOS照片库中的照片/视频,请使用照片框架中的方法。

谢谢,但是如何在React-Native中使用照片框架?谢谢,但是如何在React-Native中使用照片框架?