1

我正在尝试验证从 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 }));
4

1 回答 1

0

iOS 是沙盒化的,这意味着您没有对 App Bundle 之外的任何文件的直接读/写访问权限。要访问 iOS 照片库中的照片/视频,请使用照片框架中的方法。

于 2019-07-24T15:04:50.290 回答