Javascript 如何在React Native中从ImagePicker检索blob/文件
您好,Javascript 如何在React Native中从ImagePicker检索blob/文件,javascript,reactjs,react-native,Javascript,Reactjs,React Native,您好,ImagePicker从“expo image picker”返回的对象不包含任何文件,我不确定如何将返回的数据转换为blob/file,是否必须将数据写入文件?创建第二个文件,如 const data = new FormData() data.append('file', source) 不管怎样,我的代码 let result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: Imag
ImagePicker从“expo image picker”
返回的对象不包含任何文件,我不确定如何将返回的数据转换为blob/file,是否必须将数据写入文件?创建第二个文件,如
const data = new FormData()
data.append('file', source)
不管怎样,我的代码
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
quality: 0.8
})
if (!result.cancelled) {
console.log('Image ', source)
}
这是我写日志时得到的
图像对象{“取消”:false,“高度”:750,“类型”:
“图像”、“uri”:
"file:///Users/macbookair/Library/Developer/CoreSimulator/Devices/3DE97E67-7232-4945-BE1C-50C09FED6116/data/Containers/Data/Application/0C84C698-8C77-4D64-85AC-BFB0E88CBA0F/Library/Caches/ExponentExperienceData/%2540usfslk%252Fwillapprn/ImagePicker/19ED3307-DE54-4A09-A081-7DD32993E46B.jpg“,
“宽度”:1124,}
我可以将base64
添加到选项中,并在响应时获取它,但是如果它已经存在,为什么我要将base64转换为image呢?我的问题是google firestore无法识别发送的数据
FirebaseStorageError {
"code_": "storage/invalid-argument",
"message_": "Firebase Storage: Invalid argument in `put` at index 0: Expected Blob or File.",
"name_": "FirebaseError",
"serverResponse_": null,
}
如果以后有人想找到答案,这里有一个很好的函数
但这在android上不起作用。它抛出了一些“网络失败”错误。是的,因为此答案假定在浏览器中获取与在本机环境中获取的工作方式相同。您可能会发现.blob()不是一个函数。
const response = await fetch(result.uri);
const blob = await response.blob();
this.uploadImage(blob)