图片上传后,React Native 中 iOS 的图片 uri 为 null

After Image Uploading, image uri is null for iOS alone in React Native

在我的 React Native 应用程序中,我添加了上传多张图片的功能,这些图片将存储为包含 uri 的 image[]。 这非常适合 Android。

但对于iOS,创建的图像[]也包含一些数据,但它与android完全不同。并且只存在 uri 空值。

请帮我解决这个问题! (注意: Android 不应受到更改的影响。)

提前致谢!

图像数组:(对于 Android)

[
  { 'file': 'content://media/external/images/media/30993',
    'size': 125434,
    'uri': 'content://media/external/images/media/30993',
    'isDirectory': false,
    'md5': '041550fe959f36d1b247bb6b2eaa3272',
    'exists': true },
  { 'file': 'content://media/external/images/media/30988',
    'size': 541148,
    'uri': 'content://media/external/images/media/30988',
    'isDirectory': false,
    'md5': '39bf35dfcf0852c5412205195a395b29',
    'exists': true
  }
]

图像数组:(对于 iOS)

[
  {
    'file': 'assets-library://asset/asset.JPG?id=C2FBB68D-2012-4696-8648-D8990F72BF77&ext=JPG',
    'size': 125434,
    'modificationTime': 1552019118.1320686,
    'uri': null,
    'isDirectory': 0,
    'md5': '041550fe959f36d1b247bb6b2eaa3272',
    'exists': 1
  },
  {
    'file': 'assets-library://asset/asset.JPG?id=98EBA95A-254E-40F4-8E1D-C355D8795777&ext=JPG',
    'size': 541148,
    'modificationTime': 1552019117.7241733,
    'uri': null,
    'isDirectory': 0,
    'md5': '39bf35dfcf0852c5412205195a395b29',
    'exists': 1
  }
]

[已更新]

我需要从这个 url 'assets-library://asset/asset.JPG?id=98EBA95A-254E-40F4-8E1D-C355D8795777&ext=JPG' 获取绝对文件路径,这类似于 'content://media/external/images/media/30988'.

请帮我解决这个问题!

提前致谢!

我遇到了完全相同的问题。

解决方法是将uri设置为'file'属性。

这是 iOS 和 Android 的正确将图像附加到 formData 的方法:

        let uri = image.file;

        // extract the filetype
        let fileType = uri.substring(uri.lastIndexOf(".") + 1);

        formData.append('uploads[]', {
            uri,
            name: `photo.${fileType}`,
            type: `image/${fileType}`,
        });

此时不能删除iOS文件名“?id=98EBA95A-254E-40F4-8E1D-C355D8795777&ext=JPG'”的附加数据,否则无法上传。不过,您可以在服务器端将其删除。