图片上传后,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'”的附加数据,否则无法上传。不过,您可以在服务器端将其删除。
在我的 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'”的附加数据,否则无法上传。不过,您可以在服务器端将其删除。